<template>
  <div class="page_root" data-page-name="我的绩效-详情" data-page-identification="h_amxwncjfaw">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_nv7116jo59 系统自动计算通用项目（平台、市场、交付-通用）绩效分数规则 -->
      <a-modal
        class="vid_nv7116jo59"
        v-model:visible="vid_nv7116jo59_props.visible"
        :footer="null"
        :centered="true"
        :title="'系统自动计算通用项目（平台、市场、交付-通用）绩效分数规则'"
        :maskClosable="false"
        :width="1000"
        @ok="handle_vid_nv7116jo59_ok"
      >
        <!-- begin vid_eomyf304iq 容器_q0ksxx3npw -->
        <al-box class="vid_eomyf304iq">
          <!-- begin vid_c0w1y0i74s 容器_qpvz0ijrko -->
          <al-box class="vid_c0w1y0i74s">
            <!-- begin vid_i3zyzj5i7t 简单文本_wkraymnfls -->
            <span class="vid_i3zyzj5i7t">
              概述：员工绩效与自己参与的项目目标完成情况直接挂钩，项目的绩效得分会根据员工负责的各项目工时投入按比例合成最终得分，支持员工直属领导线下根据员工日常表现等对最终得分做调整。
            </span>
            <!-- end vid_i3zyzj5i7t 简单文本_wkraymnfls -->
          </al-box>
          <!-- end vid_c0w1y0i74s 容器_qpvz0ijrko -->
          <!-- begin vid_2x3lxgl37x 容器_taewfozfk1 -->
          <al-box class="vid_2x3lxgl37x">
            <!-- begin vid_1h0lg92rqa 简单文本_3pdes7i7jj -->
            <span class="vid_1h0lg92rqa"> 绩效分数生成流程： </span>
            <!-- end vid_1h0lg92rqa 简单文本_3pdes7i7jj -->
            <!-- begin vid_vtilhzebnd 容器_3len4d93uo -->
            <al-box class="vid_vtilhzebnd">
              <!-- begin vid_7yyxa8t0rj 简单文本_kv0c4q8u1s -->
              <span class="vid_7yyxa8t0rj">
                每月月初团队负责人、平台项目产品经理、交付项目项目经理等项目各项目核心负责人编辑项目月度目标并为各目标设置绩效分数，经领导审批通过后可关联项目列表中的任务，并为该任务分配绩效分数，完成（含延期完成）状态的任务所有任务参与人得分，反之不得分。月度目标的评分由团队负责人确认后得出最终的项目分数（如关联任务完成全部，但团队负责人确认的目标完成虽然完成但质量不高，团队负责人可直接修改目标最终得分），再通过当月非其他日报工时填报的工时占比对多个目标的分数进行计算得出员工绩效分数。各月度目标的团队负责人有权利在系统计算的员工绩效分数基础上对该员工绩效进行加减分并给出相对应的理由。
              </span>
              <!-- end vid_7yyxa8t0rj 简单文本_kv0c4q8u1s -->
              <!-- begin vid_cq6ibd15tf 容器_r0fpf60a66 -->
              <al-box class="vid_cq6ibd15tf"> </al-box>
              <!-- end vid_cq6ibd15tf 容器_r0fpf60a66 -->
              <!-- begin vid_o7r1ns2ofa 容器_d32hlh5v2d -->
              <al-box class="vid_o7r1ns2ofa">
                <!-- begin vid_v6p7lrtjan 简单文本_jal16pwdze -->
                <span class="vid_v6p7lrtjan"> 例： </span>
                <!-- end vid_v6p7lrtjan 简单文本_jal16pwdze -->
                <!-- begin vid_cff9g3unm8 简单文本_5n2ikkqdso -->
                <span class="vid_cff9g3unm8"> 整个项目目标拆分为2个目标各10个任务，每个任务5分，最终一个目标完成（含延期完成）状态任务为10，该目标 </span>
                <!-- end vid_cff9g3unm8 简单文本_5n2ikkqdso -->
              </al-box>
              <!-- end vid_o7r1ns2ofa 容器_d32hlh5v2d -->
              <!-- begin vid_0d5e3e31bo 简单文本_63evruptym -->
              <span class="vid_0d5e3e31bo">
                任务得分10*5=50分，团队负责人认可目标任务总分&nbsp;50分，则该目标按照原本的绩效分配50分得到全部完成分数，另一个目标完成（含延期完成）状态任务为8，则该目标任务得分8*5=40分，团队负责人不认可目标完成分并改为&nbsp;25，则该目标最终得分&nbsp;25&nbsp;分，50+25=75，项目核心负责人该项目绩效得分均为75分。
              </span>
              <!-- end vid_0d5e3e31bo 简单文本_63evruptym -->
            </al-box>
            <!-- end vid_vtilhzebnd 容器_3len4d93uo -->
            <!-- begin vid_n4jkmlbki9 容器_15cjpolg7p -->
            <al-box class="vid_n4jkmlbki9"> </al-box>
            <!-- end vid_n4jkmlbki9 容器_15cjpolg7p -->
          </al-box>
          <!-- end vid_2x3lxgl37x 容器_taewfozfk1 -->
          <!-- begin vid_jb7d51kuoy 容器_s0cky3ygc9 -->
          <al-box class="vid_jb7d51kuoy">
            <!-- begin vid_ldwha1vidm 简单文本_1sl0qifnxr -->
            <span class="vid_ldwha1vidm">
              其他项目参与人绩效分数为：各完成（含延期完成）状态任务的分数总和*20%+作为任务参与人完成（含延期完成）状态任务在该项目投入工时比例（1%=1分）*80%，项目绩效分数和工时投入分数的比例可由领导调整。
            </span>
            <!-- end vid_ldwha1vidm 简单文本_1sl0qifnxr -->
            <!-- begin vid_c4b77qck3h 容器_bdmaylkzcf -->
            <al-box class="vid_c4b77qck3h"> </al-box>
            <!-- end vid_c4b77qck3h 容器_bdmaylkzcf -->
            <!-- begin vid_15okb55w46 容器_y64wpnfvpy -->
            <al-box class="vid_15okb55w46">
              <!-- begin vid_iclsk2pifu 简单文本_3wnvwkho3w -->
              <span class="vid_iclsk2pifu"> 例： </span>
              <!-- end vid_iclsk2pifu 简单文本_3wnvwkho3w -->
              <!-- begin vid_gnk4rfh12o 简单文本_wkcu8kw9jr -->
              <span class="vid_gnk4rfh12o"> 整个项目目标拆分为20个任务，每个任务5分，最终完成（含延期完成）状态任务为18个，18*5=90，项目的最终绩 </span>
              <!-- end vid_gnk4rfh12o 简单文本_wkcu8kw9jr -->
            </al-box>
            <!-- end vid_15okb55w46 容器_y64wpnfvpy -->
            <!-- begin vid_gtrlkynxxf 简单文本_ui2ji7mrx7 -->
            <span class="vid_gtrlkynxxf">
              效分数为90分，某同事仅负责两个任务，一个完成一个未完成，完成（含延期完成）状态任务占该同事在该项目的工时投入比例70%，未完成的占30%，则该同事工时投入分数为70分，90*20+70*80%=74，该同事该项目最终绩效得分74分。以上项目分数为团队负责人对项目分数无异议得出，若团队负责人更改了目标评分，则项目分数会根据团队负责人修改的目标分数计算；
            </span>
            <!-- end vid_gtrlkynxxf 简单文本_ui2ji7mrx7 -->
          </al-box>
          <!-- end vid_jb7d51kuoy 容器_s0cky3ygc9 -->
          <!-- begin vid_iwgvd3lk7n 容器_pid558tj2q -->
          <al-box class="vid_iwgvd3lk7n"> </al-box>
          <!-- end vid_iwgvd3lk7n 容器_pid558tj2q -->
          <!-- begin vid_2di4xkrr1s 容器_69csbmw5dq -->
          <al-box class="vid_2di4xkrr1s">
            <!-- begin vid_v38k4hcb9h 简单文本_5bpj4a6uxc -->
            <span class="vid_v38k4hcb9h"> 团队负责人、负责人和参与人各项目的绩效得分最终会根据除其他日报工时填写外系统自动计算的各项目工时投入占比做最终合分； </span>
            <!-- end vid_v38k4hcb9h 简单文本_5bpj4a6uxc -->
            <!-- begin vid_v5g6dzb80h 容器_jubuzrbddh -->
            <al-box class="vid_v5g6dzb80h"> </al-box>
            <!-- end vid_v5g6dzb80h 容器_jubuzrbddh -->
            <!-- begin vid_s600bcahlx 容器_33fhpbkfll -->
            <al-box class="vid_s600bcahlx">
              <!-- begin vid_g5qc99k25s 简单文本_699oxg5czj -->
              <span class="vid_g5qc99k25s"> 例： </span>
              <!-- end vid_g5qc99k25s 简单文本_699oxg5czj -->
              <!-- begin vid_2tv9f8pml3 简单文本_21bh6httwu -->
              <span class="vid_2tv9f8pml3"> 某同事负责三个项目，项目一项目绩效分数为80分工时投入比例为30%，项目二项目绩效分数120分工时投入比例 </span>
              <!-- end vid_2tv9f8pml3 简单文本_21bh6httwu -->
            </al-box>
            <!-- end vid_s600bcahlx 容器_33fhpbkfll -->
            <!-- begin vid_g6a37dys2u 简单文本_dsxtumdsza -->
            <span class="vid_g6a37dys2u">
              50%，项目三项目绩效分数为50分工时投入比例为20%，80*30%+120*50%+50*20%=24+60+10=94，该员工系统最终核算绩效分数为94。以上项目分数为团队负责人对项目分数无异议得出，若团队负责人更改了目标评分，则项目分数会根据团队负责人修改的目标分数计算；
            </span>
            <!-- end vid_g6a37dys2u 简单文本_dsxtumdsza -->
          </al-box>
          <!-- end vid_2di4xkrr1s 容器_69csbmw5dq -->
          <!-- begin vid_38s0l59phg 容器_76rqtwaa0c -->
          <al-box class="vid_38s0l59phg"> </al-box>
          <!-- end vid_38s0l59phg 容器_76rqtwaa0c -->
          <!-- begin vid_yofra0b5wv 容器_ec8vj7gp7g -->
          <al-box class="vid_yofra0b5wv">
            <!-- begin vid_e7bqxx8qpk 简单文本_lic8g6e0zw -->
            <span class="vid_e7bqxx8qpk"> 员工绩效核算完成后，团队负责人可根据员工的日常表现为员工赋予加减分，加减分直接作用于系统这算的最终分数之上。 </span>
            <!-- end vid_e7bqxx8qpk 简单文本_lic8g6e0zw -->
          </al-box>
          <!-- end vid_yofra0b5wv 容器_ec8vj7gp7g -->
        </al-box>
        <!-- end vid_eomyf304iq 容器_q0ksxx3npw -->
      </a-modal>
      <!-- end vid_nv7116jo59 系统自动计算通用项目（平台、市场、交付-通用）绩效分数规则 -->
      <!-- begin vid_zdahlucw2m 系统自动计算模板项目绩效分数规则 -->
      <a-modal
        class="vid_zdahlucw2m"
        v-model:visible="vid_zdahlucw2m_props.visible"
        :footer="null"
        :centered="true"
        :title="'系统自动计算模板项目绩效分数规则'"
        :maskClosable="false"
        @cancel="handle_vid_zdahlucw2m_cancel"
        @ok="handle_vid_zdahlucw2m_ok"
      >
        <!-- begin vid_gouve646wg 容器_8qj6a557pt -->
        <al-box class="vid_gouve646wg">
          <!-- begin vid_jvbxl2gau7 容器_fgpmunq03g -->
          <al-box class="vid_jvbxl2gau7">
            <!-- begin vid_x4frjkqgzq 简单文本_10apy0qodd -->
            <span class="vid_x4frjkqgzq"> 模板项目以满分100分为基础，对员工负责的每个模板项目下触发的加减分做合并相加，得出模板项目下的最终绩效分数。 </span>
            <!-- end vid_x4frjkqgzq 简单文本_10apy0qodd -->
            <!-- begin vid_xzxaetxy25 容器_6cygkvevdy -->
            <al-box class="vid_xzxaetxy25">
              <!-- begin vid_8uqh1smcg2 简单文本_dqh2vtonb0 -->
              <span class="vid_8uqh1smcg2"> 如： </span>
              <!-- end vid_8uqh1smcg2 简单文本_dqh2vtonb0 -->
              <!-- begin vid_oe6x9nko0b 简单文本_ys4fomv2ph -->
              <span class="vid_oe6x9nko0b"> 员工同时参与通用项目和模板项目，则按照员工当月为两个类型项目投入的工时占比相乘后合并相加得出系统核算分数。 </span>
              <!-- end vid_oe6x9nko0b 简单文本_ys4fomv2ph -->
            </al-box>
            <!-- end vid_xzxaetxy25 容器_6cygkvevdy -->
          </al-box>
          <!-- end vid_jvbxl2gau7 容器_fgpmunq03g -->
        </al-box>
        <!-- end vid_gouve646wg 容器_8qj6a557pt -->
      </a-modal>
      <!-- end vid_zdahlucw2m 系统自动计算模板项目绩效分数规则 -->
      <!-- begin vid_7tkdmcltrd 目标下任务完成详情 -->
      <a-modal
        class="vid_7tkdmcltrd"
        v-model:visible="vid_7tkdmcltrd_props.visible"
        :centered="true"
        :title="'目标下任务完成详情'"
        :maskClosable="false"
        :width="1200"
        @cancel="handle_vid_7tkdmcltrd_cancel"
        @ok="handle_vid_7tkdmcltrd_ok"
      >
        <!-- begin vid_ba39vq33n9 表格_fu90fusa9m -->
        <!-- 表格_fu90fusa9m -->
        <a-table
          class="vid_ba39vq33n9"
          :bordered="true"
          :editRowSaveLoading="vid_ba39vq33n9_props.editRowSaveLoading"
          :sorter="vid_ba39vq33n9_props.sorter"
          :currentRow="vid_ba39vq33n9_props.currentRow"
          :selectedRowList="vid_ba39vq33n9_props.selectedRowList"
          :data-source="vid_ba39vq33n9_options()"
          @change="handle_vid_ba39vq33n9_change"
          :columns="vid_ba39vq33n9_columns"
          :pagination="false"
          row-key="id"
          @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_ba39vq33n9')"
          :scroll="{ x: 'max-content', y: '600px', scrollToFirstRowOnChange: true, }"
          :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
        >
          <template #headerCell="{ title, column }">
            <TableHeaderCell :title="title" :column="column" />
          </template>
          <template #bodyCell="{ text, column, record, index }">
            <!-- 序号列 -->
            <template v-if="column && column.dataIndex === 'vid_ba39vq33n9_serialNumber'">
              {{ index + 1 }}
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"项目阶段"} 列内容 -->
            <template v-if="column.dataIndex === 'projectMilepost' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"任务名称"} 列内容 -->
            <template v-if="column.dataIndex === 'taskName' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"任务负责人"} 列内容 -->
            <template v-if="column.dataIndex === 'taskOwner' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"任务执行人"} 列内容 -->
            <template v-if="column.dataIndex === 'taskParticipants' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"任务完成情况"} 列内容 -->
            <template v-if="column.dataIndex === 'taskStatus' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"任务分数"} 列内容 -->
            <template v-if="column.dataIndex === 'taskFraction' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","link":"","value":"投入工时"} 列内容 -->
            <template v-if="column.dataIndex === 'taskHourInput' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_ba39vq33n9_props.boundaryValueMap"
                :dataSource="vid_ba39vq33n9_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
          </template>
        </a-table>
        <!-- end vid_ba39vq33n9 表格_fu90fusa9m -->
      </a-modal>
      <!-- end vid_7tkdmcltrd 目标下任务完成详情 -->
      <!-- begin vid_gu03ej4an4 面包屑_8191fqem1g -->
      <a-breadcrumb class="vid_gu03ej4an4" @click="handle_vid_gu03ej4an4_click" style="word-break: break-word">
        <a-breadcrumb-item v-for="(item, index) in vid_gu03ej4an4_props_tabConfig" :key="index" @click="handleBreadcrumbJump(router, item)" href="">
          <template v-if="vid_gu03ej4an4_props.rt_showIcon">
            <span v-if="/^(https?:|mailto:|tel:|data:image)/.test(item.icon)" role="img" class="anticon"><embed style="width: 1em;height:1em;" :src="item.icon" /></span>
            <component v-else :is="item.icon" />
          </template>
          {{item.title}}
        </a-breadcrumb-item>
      </a-breadcrumb>
      <!-- end vid_gu03ej4an4 面包屑_8191fqem1g -->
      <!-- begin vid_xmrvfi343d 容器_ev3u2q2wgy -->
      <al-box class="vid_xmrvfi343d">
        <!-- begin vid_b3x5mkw968 布局容器_metnl3k05g -->
        <a-row class="vid_b3x5mkw968" :slots="'12:12'">
          <a-col :span="12">
            <!-- begin vid_y3qq75sscb 绩效分数列表 -->
            <span class="vid_y3qq75sscb"> 绩效分数列表 </span>
            <!-- end vid_y3qq75sscb 绩效分数列表 -->
          </a-col>
          <a-col :span="12">
            <!-- begin vid_9i43js7ui7 容器_by99odq41x -->
            <al-box class="vid_9i43js7ui7">
              <!-- begin vid_d28zamkd07 分数计算过程 -->
              <a-button v-if="false" class="vid_d28zamkd07" :type="'primary'" @click="handle_vid_d28zamkd07_click">
                <template #icon><calculator-outlined /></template>

                分数计算过程
              </a-button>
              <!-- end vid_d28zamkd07 分数计算过程 -->
            </al-box>
            <!-- end vid_9i43js7ui7 容器_by99odq41x -->
          </a-col>
        </a-row>
        <!-- end vid_b3x5mkw968 布局容器_metnl3k05g -->
        <!-- begin vid_xr78qqyjxy 布局容器_vrioxzkxgd -->
        <a-row class="vid_xr78qqyjxy" :gutter="16" :slots="'3:3:3:3:3:4:5'">
          <a-col :span="3">
            <!-- begin vid_seen5ewn9z 容器_e7inmi2air -->
            <al-box class="vid_seen5ewn9z">
              <!-- begin vid_146zucmoxm 简单文本_pfcxfl0ece -->
              <span class="vid_146zucmoxm"> 员工名称： </span>
              <!-- end vid_146zucmoxm 简单文本_pfcxfl0ece -->
              <!-- begin vid_c8eek4cuen 简单文本_wtvcea7ysd -->
              <span class="vid_c8eek4cuen">
                {{ renderStringInTemplate(vid_c8eek4cuen_props.rt_text) }}
              </span>
              <!-- end vid_c8eek4cuen 简单文本_wtvcea7ysd -->
            </al-box>
            <!-- end vid_seen5ewn9z 容器_e7inmi2air -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_9otwy4zewz 容器_xyceoqq94r -->
            <al-box class="vid_9otwy4zewz">
              <!-- begin vid_uplaykx3be 简单文本_o69vxyamoj -->
              <span class="vid_uplaykx3be"> 系统核算分数： </span>
              <!-- end vid_uplaykx3be 简单文本_o69vxyamoj -->
              <!-- begin vid_6mlgqj432n 简单文本_s21p1cjamn -->
              <span class="vid_6mlgqj432n">
                {{ renderStringInTemplate(vid_6mlgqj432n_props.rt_text) }}
              </span>
              <!-- end vid_6mlgqj432n 简单文本_s21p1cjamn -->
              <!-- begin vid_jcdayhvpa8 简单文本_od7kyk0hns -->
              <span class="vid_jcdayhvpa8"> 分 </span>
              <!-- end vid_jcdayhvpa8 简单文本_od7kyk0hns -->
            </al-box>
            <!-- end vid_9otwy4zewz 容器_xyceoqq94r -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_drvc3mspfl 容器_ds7ax640ji -->
            <al-box class="vid_drvc3mspfl">
              <!-- begin vid_k9hneamjoe 本月参加项目数： -->
              <span class="vid_k9hneamjoe"> 本月参加项目数： </span>
              <!-- end vid_k9hneamjoe 本月参加项目数： -->
              <!-- begin vid_ewsrsr1qot 4 -->
              <span class="vid_ewsrsr1qot">
                {{ renderStringInTemplate(vid_ewsrsr1qot_props.rt_text) }}
              </span>
              <!-- end vid_ewsrsr1qot 4 -->
            </al-box>
            <!-- end vid_drvc3mspfl 容器_ds7ax640ji -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_70maqxepqz 容器_0oimy9qax6 -->
            <al-box class="vid_70maqxepqz">
              <!-- begin vid_jpa88qi521 本月参加目标数： -->
              <span class="vid_jpa88qi521"> 本月参加目标数： </span>
              <!-- end vid_jpa88qi521 本月参加目标数： -->
              <!-- begin vid_xdi69ruiqs 4 -->
              <span class="vid_xdi69ruiqs">
                {{ renderStringInTemplate(vid_xdi69ruiqs_props.rt_text) }}
              </span>
              <!-- end vid_xdi69ruiqs 4 -->
            </al-box>
            <!-- end vid_70maqxepqz 容器_0oimy9qax6 -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_hogez2jlnt 容器_bfpymc0oei -->
            <al-box class="vid_hogez2jlnt">
              <!-- begin vid_q958vgqood 本月参加目任务数： -->
              <span class="vid_q958vgqood"> 本月参加目任务数： </span>
              <!-- end vid_q958vgqood 本月参加目任务数： -->
              <!-- begin vid_j3ml6r9mti 4 -->
              <span class="vid_j3ml6r9mti">
                {{ renderStringInTemplate(vid_j3ml6r9mti_props.rt_text) }}
              </span>
              <!-- end vid_j3ml6r9mti 4 -->
            </al-box>
            <!-- end vid_hogez2jlnt 容器_bfpymc0oei -->
          </a-col>
          <a-col :span="4">
            <!-- begin vid_emmzagc9y1 容器_9u5uaptcpe -->
            <al-box class="vid_emmzagc9y1">
              <!-- begin vid_u1yk9jgimo 目标总工时投入： -->
              <span class="vid_u1yk9jgimo"> 目标总工时投入： </span>
              <!-- end vid_u1yk9jgimo 目标总工时投入： -->
              <!-- begin vid_tr943o4n9q 简单文本_5t9xeyxh9b -->
              <span class="vid_tr943o4n9q">
                {{ renderStringInTemplate(vid_tr943o4n9q_props.rt_text) }}
              </span>
              <!-- end vid_tr943o4n9q 简单文本_5t9xeyxh9b -->
              <!-- begin vid_st8vmpp987 129 -->
              <span class="vid_st8vmpp987"> </span>
              <!-- end vid_st8vmpp987 129 -->
              <!-- begin vid_d590344jeo 人天 -->
              <span class="vid_d590344jeo"> 人天 </span>
              <!-- end vid_d590344jeo 人天 -->
            </al-box>
            <!-- end vid_emmzagc9y1 容器_9u5uaptcpe -->
          </a-col>
          <a-col :span="5">
            <!-- begin vid_ycd2q5w71a 容器_bcv4f48vf8 -->
            <al-box class="vid_ycd2q5w71a">
              <!-- begin vid_oftnayh8ih 非其他日报填报工时投入： -->
              <span class="vid_oftnayh8ih"> 非其他日报填报工时投入： </span>
              <!-- end vid_oftnayh8ih 非其他日报填报工时投入： -->
              <!-- begin vid_p3ax7uv9kv 24 -->
              <span class="vid_p3ax7uv9kv">
                {{ renderStringInTemplate(vid_p3ax7uv9kv_props.rt_text) }}
              </span>
              <!-- end vid_p3ax7uv9kv 24 -->
              <!-- begin vid_lk68sjwg98 人天 -->
              <span class="vid_lk68sjwg98"> 人天 </span>
              <!-- end vid_lk68sjwg98 人天 -->
            </al-box>
            <!-- end vid_ycd2q5w71a 容器_bcv4f48vf8 -->
          </a-col>
        </a-row>
        <!-- end vid_xr78qqyjxy 布局容器_vrioxzkxgd -->
        <!-- begin vid_9l4z2qaa22 容器_go0wxc9app -->
        <al-box class="vid_9l4z2qaa22">
          <!-- begin vid_las3v34fw3 case_0tyjy1l51s -->
          <div class="vid_las3v34fw3" :caseValue="vid_las3v34fw3_props.caseValue">
            <template v-if="checkCaseCondition(dataConnector_conn_d2k3gluhvn_response?.data.totalElements, 'GT', 0)">
              <!-- begin vid_mgn4g8g5qf 容器_l44xgrbzu9 -->
              <al-box class="vid_mgn4g8g5qf">
                <!-- begin vid_eydfd5rcoi 通用项目（平台、市场、交付-通用） -->
                <span class="vid_eydfd5rcoi"> 通用项目（平台、市场、交付-通用） </span>
                <!-- end vid_eydfd5rcoi 通用项目（平台、市场、交付-通用） -->
                <!-- begin vid_sd6x8z93cs 按钮 -->
                <a-button class="vid_sd6x8z93cs" :type="'text'" @click="handle_vid_sd6x8z93cs_click">
                  <template #icon><bell-filled /></template>
                </a-button>
                <!-- end vid_sd6x8z93cs 按钮 -->
              </al-box>
              <!-- end vid_mgn4g8g5qf 容器_l44xgrbzu9 -->
              <!-- begin vid_oz6mjcov0p 表格_s04uod385g -->
              <!-- 表格_s04uod385g -->
              <a-table
                class="vid_oz6mjcov0p"
                :bordered="true"
                :editRowSaveLoading="vid_oz6mjcov0p_props.editRowSaveLoading"
                :sorter="vid_oz6mjcov0p_props.sorter"
                :currentRow="vid_oz6mjcov0p_props.currentRow"
                :selectedRowList="vid_oz6mjcov0p_props.selectedRowList"
                :data-source="vid_oz6mjcov0p_options()"
                @change="handle_vid_oz6mjcov0p_change"
                :columns="vid_oz6mjcov0p_columns"
                :pagination="false"
                row-key="id"
                @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_oz6mjcov0p')"
                :scroll="{ x: 'max-content', y: '400px', scrollToFirstRowOnChange: true, }"
                :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
              >
                <template #headerCell="{ title, column }">
                  <TableHeaderCell :title="title" :column="column" />
                </template>
                <template #bodyCell="{ text, column, record, index }">
                  <!-- 操作列 -->
                  <div v-if="column.dataIndex === 'vid_oz6mjcov0p_operation'" class="operation-cell">
                    <!-- 默认分组 -->
                    <span>
                      <a-button type="link" @click="handle_vid_oz6mjcov0p_clickBtn_40zfwb3kea(record)">目标中任务完成详情</a-button>
                    </span>
                  </div>

                  <!-- 序号列 -->
                  <template v-if="column && column.dataIndex === 'vid_oz6mjcov0p_serialNumber'">
                    {{ index + 1 }}
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"项目名称"} 列内容 -->
                  <template v-if="column.dataIndex === 'projectName' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"项目分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'projectScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"通用项目工时占比(已排除其他日报）"} 列内容 -->
                  <template v-if="column.dataIndex === 'projectFractionRatio' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"月度目标"} 列内容 -->
                  <template v-if="column.dataIndex === 'monthGoals' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"验收标准"} 列内容 -->
                  <template v-if="column.dataIndex === 'acceptanceCriteria' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"目标下任务分总和"} 列内容 -->
                  <template v-if="column.dataIndex === 'taskFraction' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"目标投入工时"} 列内容 -->
                  <template v-if="column.dataIndex === 'goalsHour' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"id"} 列内容 -->
                  <template v-if="column.dataIndex === 'id' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"employeeMonthlyGoalsFractionId"} 列内容 -->
                  <template v-if="column.dataIndex === 'employeeMonthlyGoalsFractionId' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"工时分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'workHourScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"最终绩效"} 列内容 -->
                  <template v-if="column.dataIndex === 'finalPerformanceScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"绩效分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'performanceScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"整体工时占比(已排除其他日报)"} 列内容 -->
                  <template v-if="column.dataIndex === 'overallWorkHourRatio' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_oz6mjcov0p_props.boundaryValueMap"
                      :dataSource="vid_oz6mjcov0p_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                </template>
              </a-table>
              <!-- end vid_oz6mjcov0p 表格_s04uod385g -->
            </template>
            <template v-else> </template>
          </div>
          <!-- end vid_las3v34fw3 case_0tyjy1l51s -->
          <!-- begin vid_oll1hypc0q case_xb8qilydaw -->
          <div class="vid_oll1hypc0q" :caseValue="vid_oll1hypc0q_props.caseValue">
            <template v-if="checkCaseCondition(dataConnector_conn_lg7vaioqev_response?.data.totalElements, 'GT', 0)">
              <!-- begin vid_zbifkhjcw9 容器_56hsaaw3h6 -->
              <al-box class="vid_zbifkhjcw9">
                <!-- begin vid_9b6rhaypbr 交付-模板项目 -->
                <span class="vid_9b6rhaypbr"> 交付-模板项目 </span>
                <!-- end vid_9b6rhaypbr 交付-模板项目 -->
                <!-- begin vid_9ccyl4kryf 按钮_tjavqij8k3 -->
                <a-button class="vid_9ccyl4kryf" :type="'text'" @click="handle_vid_9ccyl4kryf_click">
                  <template #icon><bell-filled /></template>
                </a-button>
                <!-- end vid_9ccyl4kryf 按钮_tjavqij8k3 -->
              </al-box>
              <!-- end vid_zbifkhjcw9 容器_56hsaaw3h6 -->
              <!-- begin vid_5r571w6dkh 表格_o5x6dlw2yn -->
              <!-- 表格_o5x6dlw2yn -->
              <a-table
                class="vid_5r571w6dkh"
                :bordered="true"
                :editRowSaveLoading="vid_5r571w6dkh_props.editRowSaveLoading"
                :sorter="vid_5r571w6dkh_props.sorter"
                :currentRow="vid_5r571w6dkh_props.currentRow"
                :selectedRowList="vid_5r571w6dkh_props.selectedRowList"
                :data-source="vid_5r571w6dkh_options()"
                @change="handle_vid_5r571w6dkh_change"
                :columns="vid_5r571w6dkh_columns"
                :pagination="false"
                row-key="id"
                @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_5r571w6dkh')"
                :scroll="{ x: 'max-content', y: '400px', scrollToFirstRowOnChange: true, }"
                :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
              >
                <template #headerCell="{ title, column }">
                  <TableHeaderCell :title="title" :column="column" />
                </template>
                <template #bodyCell="{ text, column, record, index }">
                  <!-- 操作列 -->
                  <div v-if="column.dataIndex === 'vid_5r571w6dkh_operation'" class="operation-cell">
                    <!-- 默认分组 -->
                    <span>
                      <a-button type="link" @click="handle_vid_5r571w6dkh_clickBtn_agyda2glki(record)">项目中任务完成详情</a-button>
                    </span>
                  </div>

                  <!-- 序号列 -->
                  <template v-if="column && column.dataIndex === 'vid_5r571w6dkh_serialNumber'">
                    {{ index + 1 }}
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"项目分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'projectScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"整体工时占比(已排除其他日报)"} 列内容 -->
                  <template v-if="column.dataIndex === 'workHoursPercentageOfSystemAccountingStr' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"月度目标"} 列内容 -->
                  <template v-if="column.dataIndex === 'monthGoals' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"验收标准"} 列内容 -->
                  <template v-if="column.dataIndex === 'acceptanceCriteria' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"目标下任务分总和"} 列内容 -->
                  <template v-if="column.dataIndex === 'taskFraction' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"目标投入工时"} 列内容 -->
                  <template v-if="column.dataIndex === 'goalsHour' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"id"} 列内容 -->
                  <template v-if="column.dataIndex === 'id' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"employeeMonthlyGoalsFractionId"} 列内容 -->
                  <template v-if="column.dataIndex === 'employeeMonthlyGoalsFractionId' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"工时分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'workHourScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"最终绩效"} 列内容 -->
                  <template v-if="column.dataIndex === 'templateProjectFinalPerformance' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"绩效分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'performanceScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"参与项目"} 列内容 -->
                  <template v-if="column.dataIndex === 'projectName' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"加减分"} 列内容 -->
                  <template v-if="column.dataIndex === 'scoreChange' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_5r571w6dkh_props.boundaryValueMap"
                      :dataSource="vid_5r571w6dkh_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                </template>
              </a-table>
              <!-- end vid_5r571w6dkh 表格_o5x6dlw2yn -->
            </template>
            <template v-else> </template>
          </div>
          <!-- end vid_oll1hypc0q case_xb8qilydaw -->
          <!-- begin vid_4dg9v453pk case_omk1bu9qfr -->
          <div class="vid_4dg9v453pk" :caseValue="vid_4dg9v453pk_props.caseValue">
            <template v-if="checkCaseCondition(dataConnector_conn_f2xebtdzuv_response?.data.totalElements, 'GT', 0)">
              <!-- begin vid_f6n068s7iw 容器_pj8zqtedq9 -->
              <al-box class="vid_f6n068s7iw">
                <!-- begin vid_8xt5mc34nl 日报提交加减分明细 -->
                <span class="vid_8xt5mc34nl"> 日报提交加减分明细 </span>
                <!-- end vid_8xt5mc34nl 日报提交加减分明细 -->
              </al-box>
              <!-- end vid_f6n068s7iw 容器_pj8zqtedq9 -->
              <!-- begin vid_j2ezknemwx 表格_41t57oc4jl -->
              <!-- 表格_41t57oc4jl -->
              <a-table
                class="vid_j2ezknemwx"
                :bordered="true"
                :editRowSaveLoading="vid_j2ezknemwx_props.editRowSaveLoading"
                :sorter="vid_j2ezknemwx_props.sorter"
                :currentRow="vid_j2ezknemwx_props.currentRow"
                :selectedRowList="vid_j2ezknemwx_props.selectedRowList"
                :data-source="vid_j2ezknemwx_options()"
                @change="handle_vid_j2ezknemwx_change"
                :columns="vid_j2ezknemwx_columns"
                :pagination="false"
                row-key="id"
                @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_j2ezknemwx')"
                :scroll="{ x: 'max-content', y: '400px', scrollToFirstRowOnChange: true, }"
                :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
              >
                <template #headerCell="{ title, column }">
                  <TableHeaderCell :title="title" :column="column" />
                </template>
                <template #bodyCell="{ text, column, record, index }">
                  <!-- 序号列 -->
                  <template v-if="column && column.dataIndex === 'vid_j2ezknemwx_serialNumber'">
                    {{ index + 1 }}
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"最终分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'finalScore' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_j2ezknemwx_props.boundaryValueMap"
                      :dataSource="vid_j2ezknemwx_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"工时对应时间"} 列内容 -->
                  <template v-if="column.dataIndex === 'dailyDate' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_j2ezknemwx_props.boundaryValueMap"
                      :dataSource="vid_j2ezknemwx_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"触发时间"} 列内容 -->
                  <template v-if="column.dataIndex === 'triggerTime' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_j2ezknemwx_props.boundaryValueMap"
                      :dataSource="vid_j2ezknemwx_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"触发分数"} 列内容 -->
                  <template v-if="column.dataIndex === 'score' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_j2ezknemwx_props.boundaryValueMap"
                      :dataSource="vid_j2ezknemwx_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                  <!-- {"type":"value","dataType":"STRING","link":"","value":"原因"} 列内容 -->
                  <template v-if="column.dataIndex === 'reason' && !column.customRender">
                    <text-table-cell
                      :rowData="record"
                      :conditionValueMap="vid_j2ezknemwx_props.boundaryValueMap"
                      :dataSource="vid_j2ezknemwx_props.contentDataSource[column.dataIndex]"
                      :columnsConfig="column"
                      :value="text"
                    />
                  </template>
                </template>
              </a-table>
              <!-- end vid_j2ezknemwx 表格_41t57oc4jl -->
            </template>
            <template v-else> </template>
          </div>
          <!-- end vid_4dg9v453pk case_omk1bu9qfr -->
        </al-box>
        <!-- end vid_9l4z2qaa22 容器_go0wxc9app -->
        <!-- begin vid_hwh6dqhshb 自定义模板_gc7dz23ojb -->
        <a-modal title="绩效分数详情" v-model:visible="state.detailVisible" width="800px" @ok="state.detailVisible = false">
          <div class="first-part">
            <p v-for="part in state.firstPart.split('\n')" :key="part">{{ part }}</p>
          </div>
          <div class="second-part">
            <p v-for="part in state.secondPart.split('\n')" :key="part">{{ part }}</p>
          </div>
          <div class="third-part">
            <p v-for="part in state.thirdPart.split('\n')" :key="part">{{ part }}</p>
          </div>
          <div class="fourth-part">
            <p v-for="part in state.fourthPart.split('\n')" :key="part">{{ part }}</p>
          </div>
        </a-modal>

        <a-modal v-model:visible="stateJX.jxVisible" title="项目中任务完成详情" :footer="null" width="1500px">
          <a-table class="jx-table" :columns="jxColumns" :data-source="stateJX.jxDataSource" bordered :pagination="false" :scroll="{ x: '1400px', y: '410px' }">
            <template #bodyCell="{ column, record, text }">
              <template v-if="column.dataIndex === 'countDown'">
                <div class="count-down-content">
                  <a-tooltip placement="top" :overlayStyle="standardStyle" color="#fff" v-if="shouldDisplayCountDownWithTooltip(record.labelList, '倒计时')[0]">
                    <template #title>
                      <div class="count-down-hover">
                        <p v-for="(item, index) in record.hoverLabelList" :key="index">{{
                            item
                          }}</p>
                      </div>
                    </template>
                    <div class="count-down"
                    >{{
                        splitStringByColon(
                          shouldDisplayCountDownWithTooltip(record.labelList, '倒计时')[1]
                        )[0]

                      }}:<span class="weight-num">{{
                          splitStringByColon(
                            shouldDisplayCountDownWithTooltip(record.labelList, '倒计时')[1]
                          )[1]
                        }}</span></div
                    >
                  </a-tooltip>
                  <div v-if="shouldDisplayCountDownWithTooltip(record.labelList, '延期')[0]" class="extension-color">
                    {{
                      splitStringByColon(
                        shouldDisplayCountDownWithTooltip(record.labelList, '延期')[1]
                      )[0]

                    }}:<span class="weight-num">{{
                      splitStringByColon(
                        shouldDisplayCountDownWithTooltip(record.labelList, '延期')[1]
                      )[1]
                    }}</span>
                  </div>

                  <a-tooltip placement="top" :overlayStyle="labelToolStyle" color="#fff">
                    <template #title>
                      <div class="score-title">项目总监加减分总和：{{ getScore(record.projectDirectorLabelList) }}</div>
                      <div> <a-table :scroll="{ x: '700px', y: '200px' }" :columns="labelCoulmn" :dataSource="record.projectDirectorLabelList" bordered :pagination="false" class="score-table" /> </div
                      >>
                    </template>
                    <div
                      v-if="shouldDisplayCountDownWithTooltip(record.labelList, '项目总监')[0]"
                      :class="{
                                            'all-group-no': hasHyphen(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '项目总监')[1]
                                            ),
                                            'all-group-yes': hasPlus(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '项目总监')[1]
                                            )
                                        }"
                    >{{
                        splitStringByColon(
                          shouldDisplayCountDownWithTooltip(record.labelList, '项目总监')[1]
                        )[0]

                      }}:<span class="weight-num">{{
                          splitStringByColon(
                            shouldDisplayCountDownWithTooltip(record.labelList, '项目总监')[1]
                          )[1]
                        }}</span></div
                    >
                  </a-tooltip>
                  <a-tooltip placement="top" :overlayStyle="labelToolStyle" color="#fff">
                    <template #title>
                      <div class="score-title">项目经理加减分总和：{{ getScore(record.pmLabelList) }}</div>
                      <div>
                        <a-table :scroll="{ x: '700px', y: '200px' }" :columns="labelCoulmn" :dataSource="record.pmLabelList" bordered class="score-table" :pagination="false" />
                      </div>
                    </template>
                    <div
                      v-if="shouldDisplayCountDownWithTooltip(record.labelList, '项目经理')[0]"
                      :class="{
                                            'pm-score-no': hasHyphen(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '项目经理')[1]
                                            ),
                                            'pm-score-yes': hasPlus(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '项目经理')[1]
                                            )
                                        }"
                    >{{
                        splitStringByColon(
                          shouldDisplayCountDownWithTooltip(record.labelList, '项目经理')[1]
                        )[0]

                      }}:<span class="weight-num">{{
                          splitStringByColon(
                            shouldDisplayCountDownWithTooltip(record.labelList, '项目经理')[1]
                          )[1]
                        }}</span></div
                    >
                  </a-tooltip>

                  <a-tooltip placement="top" :overlayStyle="labelToolStyle" color="#fff">
                    <template #title>
                      <div class="score-title"
                      >项目负责人和执行人加减分总和：{{
                          getScore(record.taskOwnerLabelList)
                        }}</div
                      >
                      <div>
                        <a-table :scroll="{ x: '700px', y: '200px' }" :columns="labelCoulmn" :dataSource="record.taskOwnerLabelList" bordered class="score-table" :pagination="false" />
                      </div>
                    </template>
                    <div
                      v-if="shouldDisplayCountDownWithTooltip(record.labelList, '任务执行人')[0]"
                      :class="{
                                            'ower-score-no': hasHyphen(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '任务执行人')[1]
                                            ),
                                            'ower-score-yes': hasPlus(
                                                shouldDisplayCountDownWithTooltip(record.labelList, '任务执行人')[1]
                                            )
                                        }"
                    >{{
                        splitStringByColon(
                          shouldDisplayCountDownWithTooltip(record.labelList, '任务执行人')[1]
                        )[0]

                      }}:<span class="weight-num">{{
                          splitStringByColon(
                            shouldDisplayCountDownWithTooltip(record.labelList, '任务执行人')[1]
                          )[1]
                        }}</span></div
                    >
                  </a-tooltip>
                </div>
              </template>
            </template>
          </a-table>
        </a-modal>
        <!-- end vid_hwh6dqhshb 自定义模板_gc7dz23ojb -->
      </al-box>
      <!-- end vid_xmrvfi343d 容器_ev3u2q2wgy -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
import {
  h, ref, reactive, toRaw, markRaw, watch, computed,
  onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
} from "vue";
import { useRoute, useRouter } from 'vue-router';
const router = useRouter();
const route = useRoute();
import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission } from '@/utils/index';
import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
import dayjs from 'dayjs';
import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
import { message, notification, Modal } from 'ant-design-vue'
import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate } from '@/utils/format';
/*** PUBLISH_EXEGESIS ***
 import UserTableRecords from '@/model/UserTableRecords';
 import { getAppBaseUrl } from '@/utils/index';
 import { sendToken } from "@/hooks/useIframeToken";
 *** PUBLISH_EXEGESIS ***/

import TextTableCell from '@/components/page/tableCell/text.vue';
import NumberTableCell from '@/components/page/tableCell/number.vue';
import ProgressTableCell from '@/components/page/tableCell/progress.vue';
import OptionsTableCell from '@/components/page/tableCell/options.vue';
import DatePickerTableCell from '@/components/page/tableCell/datePicker.vue';
import RangePickerTableCell from '@/components/page/tableCell/rangePicker.vue';
import RangeNumberTableCell from '@/components/page/tableCell/rangeNumber.vue';
import BoolTableCell from '@/components/page/tableCell/bool.vue';
import TableHeaderCell from '@/components/page/TableHeaderCell.vue';

// 获取传入的流程ID
const props = defineProps({
  processInstanceId: {
    type: String
  }
})
const immediateWatch = (source, callback) => {
  watch(source, callback, {deep: true,immediate: true })
}



/* -------------------------- 属性定义 -------------------------- */

const setTimeOutList = [];
const pageLoading = reactive({
  loading: false,
  tip: undefined
});
const authInfo = localGet('app-user-store');

const vid_nv7116jo59_props = reactive({
  visible: false,
})

const vid_zdahlucw2m_props = reactive({
  visible: false,
})

const vid_7tkdmcltrd_props = reactive({
  visible: false,
})

const vid_ba39vq33n9_props = reactive({
  systemSort: [],
  sorter: {},
  editRowSaveLoading: {},
  currentRow: {"projectMilepost":"","taskName":"","taskOwner":"","taskParticipants":"","taskStatus":"","taskFraction":"","taskHourInput":""},
  selectedRowList: {"taskFraction":[],"taskOwner":[],"taskParticipants":[],"projectMilepost":[],"custom3":[],"custom4":[],"taskHourInput":[],"custom1":[],"taskName":[],"custom2":[],"custom7":[],"custom5":[],"taskStatus":[],"custom6":[]},
  totalNumber: "",
  rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":false,"showTotal":false,"hideOnSinglePage":false,"pageSize":10,"simple":false,"sync":true,"showQuickJumper":false,"showSizeChanger":false},"scroll":{"x":"max-content","y":"600px","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"#FFFFFF","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
  columnList: [
    {
      id: 'enb8cg50z0',
      dataIndex: 'projectMilepost',
      headerComment: false,
      title: '项目阶段',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '150px',
      resizable: true,
    },
    {
      id: 'snz846awg4',
      dataIndex: 'taskName',
      headerComment: false,
      title: '任务名称',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '150px',
      resizable: true,
    },
    {
      id: '55pvh58ho6',
      dataIndex: 'taskOwner',
      headerComment: false,
      title: '任务负责人',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '150px',
      resizable: true,
    },
    {
      id: 'jao7umddw4',
      dataIndex: 'taskParticipants',
      headerComment: false,
      title: '任务执行人',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '200px',
      resizable: true,
    },
    {
      id: 'uwhkelo0ao',
      dataIndex: 'taskStatus',
      headerComment: false,
      title: '任务完成情况',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '200px',
      resizable: true,
    },
    {
      id: 'okf8xf0lwa',
      dataIndex: 'taskFraction',
      headerComment: false,
      title: '任务分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '120px',
      resizable: true,
    },
    {
      id: '33vrtdemba',
      dataIndex: 'taskHourInput',
      headerComment: false,
      title: '投入工时',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '120px',
      resizable: true,
    },

  ],
  rawColumnList: [],
  // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
  rowMergeSort: [],
  // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
  systemSort: [],
  // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
  boundaryValueMap: {},
  // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
  contentDataSource: {},
})

const vid_gu03ej4an4_props = reactive({
  rt_showIcon: false,
})

const vid_tr943o4n9q_props = reactive({
  rt_text: undefined,
})

const vid_j3ml6r9mti_props = reactive({
  rt_text: undefined,
})

const vid_xdi69ruiqs_props = reactive({
  rt_text: undefined,
})

const vid_ewsrsr1qot_props = reactive({
  rt_text: undefined,
})

const vid_6mlgqj432n_props = reactive({
  rt_text: undefined,
})

const vid_c8eek4cuen_props = reactive({
  rt_text: undefined,
})

const vid_p3ax7uv9kv_props = reactive({
  rt_text: undefined,
})

const vid_las3v34fw3_props = reactive({
  caseValue: undefined,
})

const vid_oz6mjcov0p_props = reactive({
  systemSort: [],
  sorter: {},
  editRowSaveLoading: {},
  currentRow: {"projectName":"","projectScore":"","projectFractionRatio":"","monthGoals":"","acceptanceCriteria":"","taskFraction":"","goalsHour":"","id":"","employeeMonthlyGoalsFractionId":"","workHourScore":"","finalPerformanceScore":"","performanceScore":"","overallWorkHourRatio":""},
  selectedRowList: {"taskFraction":[],"custom":[],"projectScore":[],"goalsHour":[],"projectFractionRatio":[],"acceptanceCriteria":[],"custom3":[],"custom4":[],"monthGoals":[],"custom1":[],"custom2":[],"id":[],"projectName":[],"custom5":[],"employeeMonthlyGoalsFractionId":[],"workHourScore":[],"finalPerformanceScore":[],"performanceScore":[],"custom9":[],"overallWorkHourRatio":[]},
  totalNumber: "",
  rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":false,"showTotal":false,"hideOnSinglePage":false,"pageSize":10,"simple":false,"sync":true,"showQuickJumper":false,"showSizeChanger":false},"scroll":{"x":"max-content","y":"400px","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
  columnList: [
    {
      id: 'ihizy1ql1x',
      dataIndex: 'finalPerformanceScore',
      headerComment: false,
      title: '最终绩效',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '100px',
      resizable: true,
    },
    {
      id: 'ancitopmee',
      dataIndex: 'overallWorkHourRatio',
      headerComment: false,
      title: '整体工时占比(已排除其他日报)',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '240px',
      resizable: true,
    },
    {
      id: '7myoq1q6jx',
      dataIndex: 'performanceScore',
      headerComment: false,
      title: '绩效分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '100px',
      resizable: true,
    },
    {
      id: 'gksbezfsgv',
      dataIndex: 'projectName',
      headerComment: false,
      title: '项目名称',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '200px',
      resizable: true,
    },
    {
      id: 'fp4o4dkei7',
      dataIndex: 'projectScore',
      headerComment: false,
      title: '项目分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '100px',
      resizable: true,
    },
    {
      id: '5cj31tkmlp',
      dataIndex: 'workHourScore',
      headerComment: false,
      title: '工时分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '100px',
      resizable: true,
    },
    {
      id: 'xwt9mado5p',
      dataIndex: 'projectFractionRatio',
      headerComment: false,
      title: '通用项目工时占比(已排除其他日报）',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '300px',
      resizable: true,
    },
    {
      id: 'w4b3u5926b',
      dataIndex: 'monthGoals',
      headerComment: false,
      title: '月度目标',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '300px',
      resizable: true,
    },
    {
      id: '4xixxn21ds',
      dataIndex: 'acceptanceCriteria',
      headerComment: false,
      title: '验收标准',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '300px',
      resizable: true,
    },
    {
      id: 'wcjgjsikai',
      dataIndex: 'goalsHour',
      headerComment: false,
      title: '目标投入工时',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '150px',
      resizable: true,
    },
    {
      dataIndex: 'vid_oz6mjcov0p_operation',
      title: '操作',
    },
  ],
  rawColumnList: [],
  // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
  rowMergeSort: [
    { order: 'projectName', direction: 'ASC' },
    { order: 'projectScore', direction: 'ASC' },
    { order: 'projectFractionRatio', direction: 'ASC' },
    { order: 'workHourScore', direction: 'ASC' },
    { order: 'finalPerformanceScore', direction: 'ASC' },
    { order: 'performanceScore', direction: 'ASC' },
    { order: 'overallWorkHourRatio', direction: 'ASC' },
  ],
  // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
  systemSort: [
    { order: 'projectName', direction: 'ASC' },
    { order: 'projectScore', direction: 'ASC' },
    { order: 'projectFractionRatio', direction: 'ASC' },
    { order: 'workHourScore', direction: 'ASC' },
    { order: 'finalPerformanceScore', direction: 'ASC' },
    { order: 'performanceScore', direction: 'ASC' },
    { order: 'overallWorkHourRatio', direction: 'ASC' },
  ],
  // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
  boundaryValueMap: {},
  // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
  contentDataSource: {},
})

const vid_oll1hypc0q_props = reactive({
  caseValue: undefined,
})

const vid_5r571w6dkh_props = reactive({
  systemSort: [],
  sorter: {},
  editRowSaveLoading: {},
  currentRow: {"projectScore":"","workHoursPercentageOfSystemAccountingStr":"","monthGoals":"","acceptanceCriteria":"","taskFraction":"","goalsHour":"","id":"","employeeMonthlyGoalsFractionId":"","workHourScore":"","templateProjectFinalPerformance":"","performanceScore":"","projectName":"","scoreChange":""},
  selectedRowList: {"taskFraction":[],"custom":[],"projectScore":[],"goalsHour":[],"projectFractionRatio":[],"acceptanceCriteria":[],"custom3":[],"custom4":[],"monthGoals":[],"custom1":[],"custom2":[],"id":[],"projectName":[],"custom5":[],"employeeMonthlyGoalsFractionId":[],"workHourScore":[],"workHoursPercentageOfSystemAccounting":[],"templateProjectFinalPerformance":[],"performanceScore":[],"scoreChange":[],"workHoursPercentageOfSystemAccountingStr":[]},
  totalNumber: "",
  rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":false,"showTotal":false,"hideOnSinglePage":false,"pageSize":10,"simple":false,"sync":true,"showQuickJumper":false,"showSizeChanger":false},"scroll":{"x":"max-content","y":"400px","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
  columnList: [
    {
      id: 'ihizy1ql1x',
      dataIndex: 'templateProjectFinalPerformance',
      headerComment: false,
      title: '最终绩效',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: '7myoq1q6jx',
      dataIndex: 'performanceScore',
      headerComment: false,
      title: '绩效分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: 'xwt9mado5p',
      dataIndex: 'workHoursPercentageOfSystemAccountingStr',
      headerComment: false,
      title: '整体工时占比(已排除其他日报)',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '260px',
      resizable: true,
    },
    {
      id: 'hklvgqagss',
      dataIndex: 'projectName',
      headerComment: false,
      title: '参与项目',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: 'nzjk8x1j3y',
      dataIndex: 'scoreChange',
      headerComment: false,
      title: '加减分',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      dataIndex: 'vid_5r571w6dkh_operation',
      title: '操作',
    },
  ],
  rawColumnList: [],
  // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
  rowMergeSort: [
    { order: 'projectScore', direction: 'ASC' },
    { order: 'workHoursPercentageOfSystemAccountingStr', direction: 'ASC' },
    { order: 'workHourScore', direction: 'ASC' },
    { order: 'templateProjectFinalPerformance', direction: 'ASC' },
    { order: 'performanceScore', direction: 'ASC' },
  ],
  // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
  systemSort: [
    { order: 'projectScore', direction: 'ASC' },
    { order: 'workHoursPercentageOfSystemAccountingStr', direction: 'ASC' },
    { order: 'workHourScore', direction: 'ASC' },
    { order: 'templateProjectFinalPerformance', direction: 'ASC' },
    { order: 'performanceScore', direction: 'ASC' },
  ],
  // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
  boundaryValueMap: {},
  // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
  contentDataSource: {},
})

const vid_4dg9v453pk_props = reactive({
  caseValue: undefined,
})

const vid_j2ezknemwx_props = reactive({
  systemSort: [],
  sorter: {},
  editRowSaveLoading: {},
  currentRow: {"finalScore":"","dailyDate":"","triggerTime":"","score":"","reason":""},
  selectedRowList: {"taskFraction":[],"custom":[],"projectScore":[],"goalsHour":[],"projectFractionRatio":[],"acceptanceCriteria":[],"custom3":[],"custom4":[],"monthGoals":[],"custom1":[],"custom2":[],"id":[],"projectName":[],"custom5":[],"employeeMonthlyGoalsFractionId":[],"workHourScore":[],"workHoursPercentageOfSystemAccounting":[],"templateProjectFinalPerformance":[],"performanceScore":[],"scoreChange":[],"workHoursPercentageOfSystemAccountingStr":[],"finalScore":[],"dailyDate":[],"triggerTime":[],"score":[],"reason":[]},
  totalNumber: "",
  rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":false,"showTotal":false,"hideOnSinglePage":false,"pageSize":10,"simple":false,"sync":true,"showQuickJumper":false,"showSizeChanger":false},"scroll":{"x":"max-content","y":"400px","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\";","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
  columnList: [
    {
      id: 'ygtltx03y4',
      dataIndex: 'finalScore',
      headerComment: false,
      title: '最终分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: '8nxyakxmql',
      dataIndex: 'dailyDate',
      headerComment: false,
      title: '工时对应时间',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: 'wtrds0z4ep',
      dataIndex: 'triggerTime',
      headerComment: false,
      title: '触发时间',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: 'icwdvuj1x8',
      dataIndex: 'score',
      headerComment: false,
      title: '触发分数',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      resizable: true,
    },
    {
      id: 'a1ejwdh6cf',
      dataIndex: 'reason',
      headerComment: false,
      title: '原因',
      ellipsis: false,
      headerOverflow: 'ellipsis',
      contentAlign: 'left',
      customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
      rowEdit: false,
      rowEditConditions: [],
      contentType: 'TEXT',
      contentConfig: {"format":null,"defaultStyle":null,"conditionStyle":[],"dataSourceConfig":null,"boolConfig":"collection"},
      // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
      customCellStyle: { padding: 0 },
      width: '500px',
      resizable: true,
    },

  ],
  rawColumnList: [],
  // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
  rowMergeSort: [
    { order: 'finalScore', direction: 'ASC' },
  ],
  // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
  systemSort: [
    { order: 'finalScore', direction: 'ASC' },
  ],
  // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
  boundaryValueMap: {},
  // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
  contentDataSource: {},
})



// 处理校验
const setSubFormName =(parentInfo, name)=>{
  return [parentInfo.parents, parentInfo.cycleIndex, name];
}


const vid_ba39vq33n9_options_raw = ref([])

const vid_ba39vq33n9_options = computed(() => {
  return () => vid_ba39vq33n9_options_raw.value
})



const vid_oz6mjcov0p_options_raw = ref([])

const vid_oz6mjcov0p_options = computed(() => {
  return () => vid_oz6mjcov0p_options_raw.value
})



const vid_5r571w6dkh_options_raw = ref([])

const vid_5r571w6dkh_options = computed(() => {
  return () => vid_5r571w6dkh_options_raw.value
})



const vid_j2ezknemwx_options_raw = ref([])

const vid_j2ezknemwx_options = computed(() => {
  return () => vid_j2ezknemwx_options_raw.value
})

// 图表组件 表格_fu90fusa9m 条件格式数据依赖
const vid_ba39vq33n9_chartConditionDependencyMap = ref({
})
// 图表组件 表格_s04uod385g 条件格式数据依赖
const vid_oz6mjcov0p_chartConditionDependencyMap = ref({
})
// 图表组件 表格_o5x6dlw2yn 条件格式数据依赖
const vid_5r571w6dkh_chartConditionDependencyMap = ref({
})
// 图表组件 表格_41t57oc4jl 条件格式数据依赖
const vid_j2ezknemwx_chartConditionDependencyMap = ref({
})
/* ========================== 属性定义 ========================== */


/* -------------------------- 元素数据引用 -------------------------- */


/* ========================== 元素数据引用 ========================== */


/* -------------------------- 页面数据 -------------------------- */

// 页面数据 绩效目标关联任务列表
const dataConnector_conn_xh8v56w34n_response = ref();
const dataConnector_conn_xh8v56w34n = async (additionParams = {}) => {
  const exec = async () => {

    // 获取参数
    const params = {

    };

    // 注入附加的参数
    try {
      merge(params, additionParams);
    } catch (error) {
      console.log(error)
    }
    // 判断加载提示

    // 处理URL
    let url = '/solution-ppm/api/v2/built-in-system-ppm/emgf/{employeeMonthlyGoalsId}/task_list';
    // 替换url中的变量
    url = url.replace('{employeeMonthlyGoalsId}', String(vid_oz6mjcov0p_props?.currentRow.id))
    // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
    Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
    return post(url, params).then(async (resp) => {
      dataConnector_conn_xh8v56w34n_response.value = resp;

      return resp;
    }).catch(async (e) => {


      return Promise.reject(e);
    }).finally(async () => {


    })
  }

  return await exec()

}


// 页面数据 单个人员绩效
const dataConnector_conn_4fgjnw4u2k_response = ref();
const dataConnector_conn_4fgjnw4u2k = async (additionParams = {}) => {
  const exec = async () => {

    // 获取参数
    const params = {

    };

    // 注入附加的参数
    try {
      merge(params, additionParams);
    } catch (error) {
      console.log(error)
    }
    // 判断加载提示

    // 处理URL
    let url = '/solution-ppm/api/v2/built-in-system-ppm/emgf/{employeeMonthlyGoalsFractionId}';
    // 替换url中的变量
    url = url.replace('{employeeMonthlyGoalsFractionId}', String(pageParameter_state.employeeMonthlyGoalsFractionId))
    // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
    Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
    return get(url, params).then(async (resp) => {
      dataConnector_conn_4fgjnw4u2k_response.value = resp;

      return resp;
    }).catch(async (e) => {


      return Promise.reject(e);
    }).finally(async () => {


    })
  }

  return await exec()

}


// 页面数据 绩效目标列表
const dataConnector_conn_d2k3gluhvn_response = ref();
const dataConnector_conn_d2k3gluhvn = async (additionParams = {}) => {
  const exec = async () => {

    // 获取参数
    const params = {

    };

    // 注入附加的参数
    try {
      merge(params, additionParams);
    } catch (error) {
      console.log(error)
    }
    // 判断加载提示

    // 处理URL
    let url = '/solution-ppm/api/v2/built-in-system-ppm/emgf/{employeeMonthlyGoalsFractionId}/goals_list';
    // 替换url中的变量
    url = url.replace('{employeeMonthlyGoalsFractionId}', String(pageParameter_state.employeeMonthlyGoalsFractionId))
    // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
    Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
    return post(url, params).then(async (resp) => {
      dataConnector_conn_d2k3gluhvn_response.value = resp;

      return resp;
    }).catch(async (e) => {


      return Promise.reject(e);
    }).finally(async () => {


    })
  }

  return await exec()

}


// 页面数据 模板绩效目标列表
const dataConnector_conn_lg7vaioqev_response = ref();
const dataConnector_conn_lg7vaioqev = async (additionParams = {}) => {
  const exec = async () => {

    // 获取参数
    const params = {

    };

    // 注入附加的参数
    try {
      merge(params, additionParams);
    } catch (error) {
      console.log(error)
    }
    // 判断加载提示

    // 处理URL
    let url = '/solution-ppm/api/v2/built-in-system-ppm/emgf/{employeeMonthlyGoalsFractionId}/template_goals_list';
    // 替换url中的变量
    url = url.replace('{employeeMonthlyGoalsFractionId}', String(pageParameter_state.employeeMonthlyGoalsFractionId))
    // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
    Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
    return get(url, params).then(async (resp) => {
      dataConnector_conn_lg7vaioqev_response.value = resp;

      return resp;
    }).catch(async (e) => {


      return Promise.reject(e);
    }).finally(async () => {


    })
  }

  return await exec()

}


// 页面数据 日报绩效列表
const dataConnector_conn_f2xebtdzuv_response = ref();
const dataConnector_conn_f2xebtdzuv = async (additionParams = {}) => {
  const exec = async () => {

    // 获取参数
    const params = {

    };

    // 注入附加的参数
    try {
      merge(params, additionParams);
    } catch (error) {
      console.log(error)
    }
    // 判断加载提示

    // 处理URL
    let url = '/solution-ppm/api/v2/built-in-system-ppm/emgf/{employeeMonthlyGoalsFractionId}/daily_list';
    // 替换url中的变量
    url = url.replace('{employeeMonthlyGoalsFractionId}', String(pageParameter_state.employeeMonthlyGoalsFractionId))
    // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
    Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
    return get(url, params).then(async (resp) => {
      dataConnector_conn_f2xebtdzuv_response.value = resp;

      return resp;
    }).catch(async (e) => {


      return Promise.reject(e);
    }).finally(async () => {


    })
  }

  return await exec()

}

/* ========================== 页面数据 ========================== */


/* -------------------------- 响应 -------------------------- */

// 页面交互 我的绩效
const response_640eobxscz = async () => {

  const query = {

  };
  let appBaseUrl = '';
  /*** PUBLISH_EXEGESIS ***
   appBaseUrl = getAppBaseUrl()
   *** PUBLISH_EXEGESIS ***/
  const jumpInfo = {
    path: `${appBaseUrl}/app_50000005/page/50001616`, // 跳转地址
    query
  };
  const routeUrl = router.resolve(jumpInfo);
  let url = routeUrl.href;
  // 判断是否是MicroApp的子应用
  const microAppData = window.__MICRO_APP_ENVIRONMENT__ || window.eventCenterForViteApp?.getData();
  if (microAppData) {
    const urlList = []
    Object.keys(jumpInfo.query).forEach(item=>{
      urlList.push(item + '=' + jumpInfo.query[item]);
    })
    // 判断要跳转的地址是否是用户自定义输入的
    const customJumpPath = jumpInfo.path;

    // 自定义跳转页面不是其他平台的菜单，则直接使用全路径
    if (customJumpPath.indexOf('/allin-app/') !== -1) {
      // 目标页面是其他平台的菜单
      const realPath = customJumpPath.split('/allin-app/').pop()
      // 兼容二级域名情况
      let jumpPath = (microAppData.baseroute ?? '/allin-app') + '/' + realPath
      // 配置有参数，需要加参数添加到路由后面
      if(urlList.length) {
        // 跳转的路径本身带有参数
        if(jumpPath.indexOf('?') !== -1) {
          jumpPath += '&' + urlList.join("&");
        } else {
          jumpPath += '?'+ urlList.join("&");
        }
      }
      url = location.origin + jumpPath;
    } else {
      // 目标页面就是低代码项目本身的页面
      if(location.href.indexOf('/allin-app/') > -1) {
        url = location.origin + location.pathname.split("/allin-app/").shift() + '/allin-app'+ url;
      } else {
        url = location.origin + '/allin-app'+ url;
      }
    }
  }
  // 打开新窗口

  if (microAppData) {
    window.location.href = url;
  } else {
    router.push(jumpInfo);
  }


}

/* ========================== 响应 ========================== */


/* -------------------------- 函数 -------------------------- */

// 自定义函数 获取绩效详情
const customFunction_jrb3p6eqqk =  (...params) => {
  get(`/solution-ppm/api/v2/built-in-system-ppm/pmgf/employeeMonthlyPerformance/getScoreDetail/${state.employeeMonthlyGoalsFractionId}`).then(({data})=>{
    state.detailVisible = true
    console.log(data,'dads')
    state.firstPart = data.firstPart
    state.secondPart = data.secondPart
    state.thirdPart = data.thirdPart
    state.fourthPart = data.fourthPart
  })
}


// 自定义函数 项目中任务完成详情
const customFunction_wenbt73z35 =  (...params) => {
  showJX(vid_5r571w6dkh_props.currentRow)
}

/* ========================== 函数 ========================== */


/* -------------------------- 页面参数 -------------------------- */

const pageParameter_state = reactive({
  'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
  'employeeMonthlyGoalsFractionId': undefined,
})

/* ========================== 页面参数 ========================== */


/* -------------------------- 组件事件处理方法 -------------------------- */

// ---------------------------- 组件数据同步 ----------------------------
// 处理 表格_fu90fusa9m 的 systemList 属性关联
watch(() => dataConnector_conn_xh8v56w34n_response?.value?.data,
  () => { vid_ba39vq33n9_options_raw.value = dataConnector_conn_xh8v56w34n_response?.value?.data; },
  {deep: true})
// 处理 简单文本_5t9xeyxh9b 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.goalsReportHourInput,
  () => { vid_tr943o4n9q_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.goalsReportHourInput; },
  {deep: true})
// 处理 4 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.taskNum,
  () => { vid_j3ml6r9mti_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.taskNum; },
  {deep: true})
// 处理 4 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.goalsNum,
  () => { vid_xdi69ruiqs_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.goalsNum; },
  {deep: true})
// 处理 4 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.projectNum,
  () => { vid_ewsrsr1qot_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.projectNum; },
  {deep: true})
// 处理 简单文本_s21p1cjamn 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.fraction,
  () => { vid_6mlgqj432n_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.fraction; },
  {deep: true})
// 处理 简单文本_wtvcea7ysd 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.userName,
  () => { vid_c8eek4cuen_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.userName; },
  {deep: true})
// 处理 24 的 rt_text 属性关联
watch(() => dataConnector_conn_4fgjnw4u2k_response?.value?.data?.normalDailyReportHourInput,
  () => { vid_p3ax7uv9kv_props.rt_text = dataConnector_conn_4fgjnw4u2k_response?.value?.data?.normalDailyReportHourInput; },
  {deep: true})
// 处理 case_0tyjy1l51s 的 caseValue 属性关联
watch(() => dataConnector_conn_d2k3gluhvn_response?.value?.data?.totalElements,
  () => { vid_las3v34fw3_props.caseValue = dataConnector_conn_d2k3gluhvn_response?.value?.data?.totalElements; },
  {deep: true})
// 处理 表格_s04uod385g 的 systemList 属性关联
watch(() => dataConnector_conn_d2k3gluhvn_response?.value?.data?.dataList,
  () => { vid_oz6mjcov0p_options_raw.value = dataConnector_conn_d2k3gluhvn_response?.value?.data?.dataList; },
  {deep: true})
// 处理 case_xb8qilydaw 的 caseValue 属性关联
watch(() => dataConnector_conn_lg7vaioqev_response?.value?.data?.totalElements,
  () => { vid_oll1hypc0q_props.caseValue = dataConnector_conn_lg7vaioqev_response?.value?.data?.totalElements; },
  {deep: true})
// 处理 表格_o5x6dlw2yn 的 systemList 属性关联
watch(() => dataConnector_conn_lg7vaioqev_response?.value?.data?.dataList,
  () => { vid_5r571w6dkh_options_raw.value = dataConnector_conn_lg7vaioqev_response?.value?.data?.dataList; },
  {deep: true})
// 处理 case_omk1bu9qfr 的 caseValue 属性关联
watch(() => dataConnector_conn_f2xebtdzuv_response?.value?.data?.totalElements,
  () => { vid_4dg9v453pk_props.caseValue = dataConnector_conn_f2xebtdzuv_response?.value?.data?.totalElements; },
  {deep: true})
// 处理 表格_41t57oc4jl 的 systemList 属性关联
watch(() => dataConnector_conn_f2xebtdzuv_response?.value?.data?.dataList,
  () => { vid_j2ezknemwx_options_raw.value = dataConnector_conn_f2xebtdzuv_response?.value?.data?.dataList; },
  {deep: true})
// ============================ 组件数据同步 ============================

/**
 * 处理元素 对话框 的 ok 事件
 */
let handle_vid_nv7116jo59_ok = throttle(async (...params) => {
  vid_nv7116jo59_props.visible = false;
  vid_nv7116jo59_props.visible = false;
}, 500)
/**
 * 处理元素 对话框 的 cancel 事件
 */
let handle_vid_zdahlucw2m_cancel = throttle(async (...params) => {
  vid_zdahlucw2m_props.visible = false;
}, 500)
/**
 * 处理元素 对话框 的 ok 事件
 */
let handle_vid_zdahlucw2m_ok = throttle(async (...params) => {
  vid_zdahlucw2m_props.visible = false;
}, 500)
/**
 * 处理元素 对话框 的 cancel 事件
 */
let handle_vid_7tkdmcltrd_cancel = throttle(async (...params) => {
  vid_7tkdmcltrd_props.visible = false;
}, 500)
/**
 * 处理元素 对话框 的 ok 事件
 */
let handle_vid_7tkdmcltrd_ok = throttle(async (...params) => {
  vid_7tkdmcltrd_props.visible = false;
}, 500)
/**
 * 处理元素 表格 的 change 事件
 */
let handle_vid_ba39vq33n9_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_ba39vq33n9_props.rt_tableConfig.pagination.current = current;
  vid_ba39vq33n9_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_ba39vq33n9_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
    sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
    sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_ba39vq33n9_props.systemSort = sorterList;
  vid_ba39vq33n9_props.sorter = sorterValue;
}, 500)
/**
 * 处理元素 面包屑 的 click 事件
 */
let handle_vid_gu03ej4an4_click = throttle(async (...params) => {
  response_640eobxscz()
}, 500)
/**
 * 处理元素 按钮 的 click 事件
 */
let handle_vid_d28zamkd07_click = throttle(async (...params) => {
  customFunction_jrb3p6eqqk();
}, 500)
/**
 * 处理元素 按钮 的 click 事件
 */
let handle_vid_sd6x8z93cs_click = throttle(async (...params) => {
  vid_nv7116jo59_props.visible = true;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_40zfwb3kea 事件
 */
let handle_vid_oz6mjcov0p_clickBtn_40zfwb3kea = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_oz6mjcov0p_props.currentRow = record;
  vid_7tkdmcltrd_props.visible = true;
  await dataConnector_conn_xh8v56w34n()
}, 500)
/**
 * 处理元素 表格 的 change 事件
 */
let handle_vid_oz6mjcov0p_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_oz6mjcov0p_props.rt_tableConfig.pagination.current = current;
  vid_oz6mjcov0p_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_oz6mjcov0p_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
    sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
    sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_oz6mjcov0p_props.systemSort = sorterList;
  vid_oz6mjcov0p_props.sorter = sorterValue;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_agyda2glki 事件
 */
let handle_vid_oz6mjcov0p_clickBtn_agyda2glki = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_oz6mjcov0p_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_d3xdlj1wgk 事件
 */
let handle_vid_oz6mjcov0p_clickBtn_d3xdlj1wgk = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_oz6mjcov0p_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_fa585vdazi 事件
 */
let handle_vid_oz6mjcov0p_clickBtn_fa585vdazi = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_oz6mjcov0p_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_xrhah7ybpr 事件
 */
let handle_vid_oz6mjcov0p_clickBtn_xrhah7ybpr = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_oz6mjcov0p_props.currentRow = record;
}, 500)
/**
 * 处理元素 按钮 的 click 事件
 */
let handle_vid_9ccyl4kryf_click = throttle(async (...params) => {
  vid_zdahlucw2m_props.visible = true;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_agyda2glki 事件
 */
let handle_vid_5r571w6dkh_clickBtn_agyda2glki = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_5r571w6dkh_props.currentRow = record;
  customFunction_wenbt73z35();
}, 500)
/**
 * 处理元素 表格 的 change 事件
 */
let handle_vid_5r571w6dkh_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_5r571w6dkh_props.rt_tableConfig.pagination.current = current;
  vid_5r571w6dkh_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_5r571w6dkh_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
    sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
    sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_5r571w6dkh_props.systemSort = sorterList;
  vid_5r571w6dkh_props.sorter = sorterValue;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_40zfwb3kea 事件
 */
let handle_vid_5r571w6dkh_clickBtn_40zfwb3kea = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_5r571w6dkh_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_d3xdlj1wgk 事件
 */
let handle_vid_5r571w6dkh_clickBtn_d3xdlj1wgk = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_5r571w6dkh_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_fa585vdazi 事件
 */
let handle_vid_5r571w6dkh_clickBtn_fa585vdazi = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_5r571w6dkh_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 clickBtn_xrhah7ybpr 事件
 */
let handle_vid_5r571w6dkh_clickBtn_xrhah7ybpr = throttle(async (...params) => {
  // 存储表格当前行数据
  const [record] = params;
  vid_5r571w6dkh_props.currentRow = record;
}, 500)
/**
 * 处理元素 表格 的 change 事件
 */
let handle_vid_j2ezknemwx_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_j2ezknemwx_props.rt_tableConfig.pagination.current = current;
  vid_j2ezknemwx_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_j2ezknemwx_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
    sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
    sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_j2ezknemwx_props.systemSort = sorterList;
  vid_j2ezknemwx_props.sorter = sorterValue;
}, 500)
/* ========================== 组件事件处理方法 ========================== */


/* -------------------------- 生命周期 -------------------------- */

const pageParams = [{"dataType":"STRING","name":"employeeMonthlyGoalsFractionId","dependencies":[{"propertyChain":"employeeMonthlyGoalsFractionId","sourceType":"dataConnector","dataConnector":{"vid":"conn_d2k3gluhvn","paramLink":"employeeMonthlyGoalsFractionId","type":"url"}},{"propertyChain":"employeeMonthlyGoalsFractionId","sourceType":"dataConnector","dataConnector":{"vid":"conn_4fgjnw4u2k","paramLink":"employeeMonthlyGoalsFractionId","type":"url"}},{"sourceType":"dataConnector","propertyChain":"employeeMonthlyGoalsFractionId","dataConnector":{"vid":"conn_lg7vaioqev","type":"url","paramLink":"employeeMonthlyGoalsFractionId"}},{"sourceType":"dataConnector","propertyChain":"employeeMonthlyGoalsFractionId","dataConnector":{"vid":"conn_f2xebtdzuv","type":"url","paramLink":"employeeMonthlyGoalsFractionId"}}]}];
const setPageParams = ()=>{
  pageParams.forEach(param => {
    strategyMap[param.dataType](param, route.query[param.name])
  })
}
const strategyMap = {
  STRING: (param, paramValue) => {
    if (typeof paramValue === 'undefined') {
      pageParameter_state[param.name] = undefined
      return
    }
    pageParameter_state[param.name] = paramValue;
  },
  BOOLEAN: (param, paramValue) => {
    if (typeof paramValue === 'undefined') {
      pageParameter_state[param.name] = undefined
      return
    }
    if('true' === (paramValue || '').toLowerCase()) {
      pageParameter_state[param.name] = true
    } else if('false' === (paramValue || '').toLowerCase()) {
      pageParameter_state[param.name] = false
    } else {
      message.error('参数传入错误！类型不匹配！');
    }
  },
  NUMBER: (param, paramValue) => {
    if (typeof paramValue === 'undefined') {
      pageParameter_state[param.name] = undefined
      return
    }
    if (!isNaN(paramValue)) {
      pageParameter_state[param.name] = Number(paramValue);
    } else {
      message.error('参数传入错误！类型不匹配！');
    }
  },
  ARRAY: (param, paramValue) => {
    if (typeof paramValue === 'undefined') {
      pageParameter_state[param.name] = undefined
      return
    }
    if (isNullOrUnDef(paramValue)  || !paramValue || paramValue=== 'undefined') {
      pageParameter_state[param.name] = [];
    } else if(paramValue.trim().startsWith('[') && paramValue.trim().endsWith(']')) {
      try {
        pageParameter_state[param.name] = JSON.parse(decodeURI(paramValue));
      } catch (error) {
        console.error('参数解析失败 ',error);
        message.error('参数解析失败 ',error);
      }
    } else {
      console.error('参数传入错误！类型不匹配！');
      message.error('参数传入错误！类型不匹配！');
    }
  },
};
/*** PUBLISH_EXEGESIS ***
 immediateWatch(
 () => route.query,
 () => {
 setPageParams();
 dataConnector_conn_4fgjnw4u2k()
 dataConnector_conn_d2k3gluhvn()
 dataConnector_conn_lg7vaioqev()
 dataConnector_conn_f2xebtdzuv()
 }
 )
 *** PUBLISH_EXEGESIS ***/
onMounted(() => {setPageParams() ;dataConnector_conn_4fgjnw4u2k()
  dataConnector_conn_d2k3gluhvn()
  dataConnector_conn_lg7vaioqev()
  dataConnector_conn_f2xebtdzuv()

});

onUnmounted(() => {
  // 销毁定时器
  setTimeOutList.forEach(({ repeat, timer }) => {
    repeat ?  clearInterval(timer): clearTimeout(timer);
  });
});

/* ========================== 生命周期 ========================== */


/* -------------------------- 数据关联处理 -------------------------- */





/* -------------------------- 表单数据同步 -------------------------- */
/* ========================== 表单数据同步 ========================== */

/* ========================== 数据关联处理 ========================== */


/* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */
onMounted(() => {
  const rawColumnList = []
  traversalTreeStructure(vid_ba39vq33n9_props.columnList, (node) => {
    if (node.type === 'column') {
      rawColumnList.push(node)
    }
  });
  /*** PUBLISH_EXEGESIS ***
   // 获取缓存的表格列宽度，处理列宽信息
   UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
   const columnWidthMap = res['vid_ba39vq33n9'] ?? {};
   rawColumnList.map((column) => {
   if(columnWidthMap[column.dataIndex]) {
   column.width = columnWidthMap[column.dataIndex]
   }
   })
   });
   *** PUBLISH_EXEGESIS ***/
  vid_ba39vq33n9_props.rawColumnList = rawColumnList;
})
// 生成表格列：相同分组的数据需要合并单元格
const vid_ba39vq33n9_columns = computed(() => {
  // 需要合并单元格的列
  const groupKeys = [];

  // 将表头配置按照groupTitle字段进行分组，以实现多级表头
  const columnList = [...vid_ba39vq33n9_props.columnList];

  function formatColumns(columns) {
    columns.forEach(item => {
      const { dataIndex, contentAlign, children, customCellStyle } = item;
      // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
      if (!dataIndex && children && children.length) {
        formatColumns(children);
        return;
      }

      const groupIndex = groupKeys.findIndex(item => item === dataIndex);
      // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
      if (groupIndex === -1) {
        item.customCell = (record, index) => {
          return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      } else {
        item.customCell = (record, index) => {
          const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
          const rowSpanList = generateRowSpanList(vid_ba39vq33n9_options.value(), rowGroupKeys,vid_ba39vq33n9_props.editRecordMap);
          return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      }
    })
  }

  // 格式化column：增加合并单元格的配置，以及自定义样式
  formatColumns(columnList);

  return columnList;
});


// 表格分页器信息：将总条数信息加到基础分页信息中
const vid_ba39vq33n9_pagination = computed(() => {
  const { totalNumber, rt_tableConfig } = vid_ba39vq33n9_props;
  const {
    enable = true,
    current= 1,
    pageSize= 10,
    showSizeChanger= false,
    pageSizeOptions= '10,20,30,40',
    showTotal= false,
    showQuickJumper= false,
    simple= false,
    hideOnSinglePage= false,
  } = rt_tableConfig.pagination ?? {};
  const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
  let info = {};
  if(enable) {
    info = {
      total: totalNumber || 0,
      pageSize,
      size,
      simple,
      current,
      showSizeChanger,
      pageSizeOptions: pageSizeOptions.split(','),
      showQuickJumper,
      hideOnSinglePage,
      position: [layout],
    }
    if(showTotal) {
      info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
    }
    return info;
  }
  return false;
})


// 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
watch(() => dataConnector_conn_xh8v56w34n_response?.value?.data, (newValue) => {
  const current = vid_ba39vq33n9_props.rt_tableConfig.pagination.current;
  if (!newValue?.length && current > 1) {
    vid_ba39vq33n9_props.rt_tableConfig.pagination.current = current - 1;
    dataConnector_conn_xh8v56w34n();
  }
});
const vid_gu03ej4an4_props_tabConfig = computed(() => {
  const initValue = [{"parameter":[],"icon":"","title":"我的绩效","applicationId":50000005,"key":"tab1","targetPage":{"customUrl":"","settingType":""},"query":{}},{"parameter":[],"icon":"","title":"我的绩效详情","applicationId":50000005,"key":"tab2","targetPage":{"customUrl":"","settingType":""},"query":{}}];
  return initValue;
})
onMounted(() => {
  const rawColumnList = []
  traversalTreeStructure(vid_oz6mjcov0p_props.columnList, (node) => {
    if (node.type === 'column') {
      rawColumnList.push(node)
    }
  });
  /*** PUBLISH_EXEGESIS ***
   // 获取缓存的表格列宽度，处理列宽信息
   UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
   const columnWidthMap = res['vid_oz6mjcov0p'] ?? {};
   rawColumnList.map((column) => {
   if(columnWidthMap[column.dataIndex]) {
   column.width = columnWidthMap[column.dataIndex]
   }
   })
   });
   *** PUBLISH_EXEGESIS ***/
  vid_oz6mjcov0p_props.rawColumnList = rawColumnList;
})
// 生成表格列：相同分组的数据需要合并单元格
const vid_oz6mjcov0p_columns = computed(() => {
  // 需要合并单元格的列
  const groupKeys = ['projectName', 'projectScore', 'projectFractionRatio', 'workHourScore', 'finalPerformanceScore', 'performanceScore', 'overallWorkHourRatio'];

  // 将表头配置按照groupTitle字段进行分组，以实现多级表头
  const columnList = [...vid_oz6mjcov0p_props.columnList];

  function formatColumns(columns) {
    columns.forEach(item => {
      const { dataIndex, contentAlign, children, customCellStyle } = item;
      // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
      if (!dataIndex && children && children.length) {
        formatColumns(children);
        return;
      }

      const groupIndex = groupKeys.findIndex(item => item === dataIndex);
      // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
      if (groupIndex === -1) {
        item.customCell = (record, index) => {
          return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      } else {
        item.customCell = (record, index) => {
          const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
          const rowSpanList = generateRowSpanList(vid_oz6mjcov0p_options.value(), rowGroupKeys,vid_oz6mjcov0p_props.editRecordMap);
          return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      }
    })
  }

  // 格式化column：增加合并单元格的配置，以及自定义样式
  formatColumns(columnList);

  return columnList;
});


// 表格分页器信息：将总条数信息加到基础分页信息中
const vid_oz6mjcov0p_pagination = computed(() => {
  const { totalNumber, rt_tableConfig } = vid_oz6mjcov0p_props;
  const {
    enable = true,
    current= 1,
    pageSize= 10,
    showSizeChanger= false,
    pageSizeOptions= '10,20,30,40',
    showTotal= false,
    showQuickJumper= false,
    simple= false,
    hideOnSinglePage= false,
  } = rt_tableConfig.pagination ?? {};
  const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
  let info = {};
  if(enable) {
    info = {
      total: totalNumber || 0,
      pageSize,
      size,
      simple,
      current,
      showSizeChanger,
      pageSizeOptions: pageSizeOptions.split(','),
      showQuickJumper,
      hideOnSinglePage,
      position: [layout],
    }
    if(showTotal) {
      info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
    }
    return info;
  }
  return false;
})


// 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
watch(() => dataConnector_conn_d2k3gluhvn_response?.value?.data?.dataList, (newValue) => {
  const current = vid_oz6mjcov0p_props.rt_tableConfig.pagination.current;
  if (!newValue?.length && current > 1) {
    vid_oz6mjcov0p_props.rt_tableConfig.pagination.current = current - 1;
    dataConnector_conn_d2k3gluhvn();
  }
});
onMounted(() => {
  const rawColumnList = []
  traversalTreeStructure(vid_5r571w6dkh_props.columnList, (node) => {
    if (node.type === 'column') {
      rawColumnList.push(node)
    }
  });
  /*** PUBLISH_EXEGESIS ***
   // 获取缓存的表格列宽度，处理列宽信息
   UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
   const columnWidthMap = res['vid_5r571w6dkh'] ?? {};
   rawColumnList.map((column) => {
   if(columnWidthMap[column.dataIndex]) {
   column.width = columnWidthMap[column.dataIndex]
   }
   })
   });
   *** PUBLISH_EXEGESIS ***/
  vid_5r571w6dkh_props.rawColumnList = rawColumnList;
})
// 生成表格列：相同分组的数据需要合并单元格
const vid_5r571w6dkh_columns = computed(() => {
  // 需要合并单元格的列
  const groupKeys = ['projectScore', 'workHoursPercentageOfSystemAccountingStr', 'workHourScore', 'templateProjectFinalPerformance', 'performanceScore'];

  // 将表头配置按照groupTitle字段进行分组，以实现多级表头
  const columnList = [...vid_5r571w6dkh_props.columnList];

  function formatColumns(columns) {
    columns.forEach(item => {
      const { dataIndex, contentAlign, children, customCellStyle } = item;
      // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
      if (!dataIndex && children && children.length) {
        formatColumns(children);
        return;
      }

      const groupIndex = groupKeys.findIndex(item => item === dataIndex);
      // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
      if (groupIndex === -1) {
        item.customCell = (record, index) => {
          return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      } else {
        item.customCell = (record, index) => {
          const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
          const rowSpanList = generateRowSpanList(vid_5r571w6dkh_options.value(), rowGroupKeys,vid_5r571w6dkh_props.editRecordMap);
          return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      }
    })
  }

  // 格式化column：增加合并单元格的配置，以及自定义样式
  formatColumns(columnList);

  return columnList;
});


// 表格分页器信息：将总条数信息加到基础分页信息中
const vid_5r571w6dkh_pagination = computed(() => {
  const { totalNumber, rt_tableConfig } = vid_5r571w6dkh_props;
  const {
    enable = true,
    current= 1,
    pageSize= 10,
    showSizeChanger= false,
    pageSizeOptions= '10,20,30,40',
    showTotal= false,
    showQuickJumper= false,
    simple= false,
    hideOnSinglePage= false,
  } = rt_tableConfig.pagination ?? {};
  const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
  let info = {};
  if(enable) {
    info = {
      total: totalNumber || 0,
      pageSize,
      size,
      simple,
      current,
      showSizeChanger,
      pageSizeOptions: pageSizeOptions.split(','),
      showQuickJumper,
      hideOnSinglePage,
      position: [layout],
    }
    if(showTotal) {
      info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
    }
    return info;
  }
  return false;
})


// 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
watch(() => dataConnector_conn_lg7vaioqev_response?.value?.data?.dataList, (newValue) => {
  const current = vid_5r571w6dkh_props.rt_tableConfig.pagination.current;
  if (!newValue?.length && current > 1) {
    vid_5r571w6dkh_props.rt_tableConfig.pagination.current = current - 1;
    dataConnector_conn_lg7vaioqev();
  }
});
onMounted(() => {
  const rawColumnList = []
  traversalTreeStructure(vid_j2ezknemwx_props.columnList, (node) => {
    if (node.type === 'column') {
      rawColumnList.push(node)
    }
  });
  /*** PUBLISH_EXEGESIS ***
   // 获取缓存的表格列宽度，处理列宽信息
   UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
   const columnWidthMap = res['vid_j2ezknemwx'] ?? {};
   rawColumnList.map((column) => {
   if(columnWidthMap[column.dataIndex]) {
   column.width = columnWidthMap[column.dataIndex]
   }
   })
   });
   *** PUBLISH_EXEGESIS ***/
  vid_j2ezknemwx_props.rawColumnList = rawColumnList;
})
// 生成表格列：相同分组的数据需要合并单元格
const vid_j2ezknemwx_columns = computed(() => {
  // 需要合并单元格的列
  const groupKeys = ['finalScore'];

  // 将表头配置按照groupTitle字段进行分组，以实现多级表头
  const columnList = [...vid_j2ezknemwx_props.columnList];

  function formatColumns(columns) {
    columns.forEach(item => {
      const { dataIndex, contentAlign, children, customCellStyle } = item;
      // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
      if (!dataIndex && children && children.length) {
        formatColumns(children);
        return;
      }

      const groupIndex = groupKeys.findIndex(item => item === dataIndex);
      // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
      if (groupIndex === -1) {
        item.customCell = (record, index) => {
          return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      } else {
        item.customCell = (record, index) => {
          const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
          const rowSpanList = generateRowSpanList(vid_j2ezknemwx_options.value(), rowGroupKeys,vid_j2ezknemwx_props.editRecordMap);
          return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
        };
      }
    })
  }

  // 格式化column：增加合并单元格的配置，以及自定义样式
  formatColumns(columnList);

  return columnList;
});


// 表格分页器信息：将总条数信息加到基础分页信息中
const vid_j2ezknemwx_pagination = computed(() => {
  const { totalNumber, rt_tableConfig } = vid_j2ezknemwx_props;
  const {
    enable = true,
    current= 1,
    pageSize= 10,
    showSizeChanger= false,
    pageSizeOptions= '10,20,30,40',
    showTotal= false,
    showQuickJumper= false,
    simple= false,
    hideOnSinglePage= false,
  } = rt_tableConfig.pagination ?? {};
  const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
  let info = {};
  if(enable) {
    info = {
      total: totalNumber || 0,
      pageSize,
      size,
      simple,
      current,
      showSizeChanger,
      pageSizeOptions: pageSizeOptions.split(','),
      showQuickJumper,
      hideOnSinglePage,
      position: [layout],
    }
    if(showTotal) {
      info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
    }
    return info;
  }
  return false;
})


// 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
watch(() => dataConnector_conn_f2xebtdzuv_response?.value?.data?.dataList, (newValue) => {
  const current = vid_j2ezknemwx_props.rt_tableConfig.pagination.current;
  if (!newValue?.length && current > 1) {
    vid_j2ezknemwx_props.rt_tableConfig.pagination.current = current - 1;
    dataConnector_conn_f2xebtdzuv();
  }
});
/**
 * 生成分组字段合并单元格的配置：返回值为一个数字数组，数组里面每一项即为该字段当前行的rowSpan配置
 * @param {Array} 表格中的数据
 * @param {Array} 当前分组字段的列表，注：为了保证优先级低的字段合并后是优先级高的字段合并后的子集，需要把比该字段优先级高的分组字段按顺序放在该字段前面；例如：所有分组字段列表为['grade', 'age', 'score']，要生成age字段的合并单元格配置，则该参数需要传['grade', 'age']
 * @returns {Array} 该字段合并单元格的rowSpan配置，例：[1, 1, 2, 0, 1]
 */
function generateRowSpanList(dataSource, groupKeys,editRecordMap) {
  if (!dataSource || !dataSource.length) {
    return [];
  }

  const rowSpanList = [];

  // 判断单元格是否需要合并的临时值：使用表格数据最后一行进行初始化（表格数据的遍历是倒序进行的）
  let tempValue = getGroupValue(dataSource[dataSource.length - 1], groupKeys);
  // 记录需要合并单元格的数量
  let tempValueCount = 0;

  // 倒序遍历数组，以保证使用最前面一条数据合并单元格
  for (let index = dataSource.length - 1; index >= 0; index--) {
    rowSpanList[index] = 0;
    const groupValue = getGroupValue(dataSource[index], groupKeys);
    // 如果当前行的分组数据跟上一行一致，则将标记数量加一；否则将标记数量的当前值赋给上一条数据，并重置临时值和标记数量
    if(editRecordMap && editRecordMap[index]){ //如果当前行是编辑行
      rowSpanList[index + 1] = tempValueCount;
      tempValue = "";
      tempValueCount=1;
    }
    else if (groupValue === tempValue) {
      tempValueCount++;
    } else {
      rowSpanList[index + 1] = tempValueCount;
      tempValue = groupValue;
      tempValueCount = 1;
    }

    // 遍历到最后一行，将当前的标记数量赋给当前行
    if (index === 0) {
      rowSpanList[index] = tempValueCount;
    }
  }

  return rowSpanList;
}

/**
 * 根据分组字段列表生成当前数据行的分组值
 * @param {Object} 当前数据行
 * @param {Array} 分组字段列表
 * @returns {String} 拼装的当前数据行的分组值，例：record为{ age: 7, grade: '一年级', name: '小赵' }，groupKeys为['grade', 'age']，则拼装后的返回值为'一年级__$__7'
 */
function getGroupValue(record, groupKeys) {
  const groupValueList = [];
  groupKeys.forEach(groupKey => {
    groupValueList.push(`${record[groupKey]}`);
  });

  return groupValueList.join('__$__');
}

/**
 * 将列表数据转换成树状数据
 * @param {Array} 原始的列表数据
 * @param {String|Number} 列表数据的唯一key
 * @param {String|Number} 列表数据转成树时的父级id
 */
function convertListToTree(list, key, parentKey) {
  const clonedList = cloneDeep(list || []);

  // 遍历列表数据，生成树节点的map：key为列表数据的唯一key，value为列表当前行的数据
  const treeNodeMap = {};
  clonedList.forEach(item => {
    treeNodeMap[item[key]] = item;
  });

  const treeDataList = [];
  clonedList.forEach(item => {
    // 如果当前行数据的父级id不在树节点的map中，则当前数据为根节点数据，将其加入最终树形数据的列表；否则将其放入其父节点数据的children中
    if (!treeNodeMap[item[parentKey]]) {
      treeDataList.push(item);
    } else {
      if (!treeNodeMap[item[parentKey]].children) {
        treeNodeMap[item[parentKey]].children = [];
      }
      treeNodeMap[item[parentKey]].children.push(item);
    }
  });

  return treeDataList;
}

/**
 * 表格列宽伸缩处理，使用indexedDB缓存伸缩后的列宽度
 */
const handleResizeColumn = (w, col, vid) => {
  col.width = w;
  /*** PUBLISH_EXEGESIS ***
   UserTableRecords.saveTableRecords(col, localGet('al__UID'), vid)
   *** PUBLISH_EXEGESIS ***/
}
/* ========================== 不同组件自定义的处理逻辑 ========================== */


// ================================定制化逻辑========================================
const state = reactive({
  detailVisible:false,
  firstPart:'',
  secondPart:'',
  thirdPart:'',
  fourthPart:'',
  employeeMonthlyGoalsFractionId:null
})
const currentURL = window.location.href;
const url = new URL(currentURL);
const employeeMonthlyGoalsFractionId = url.searchParams.get("employeeMonthlyGoalsFractionId");

if (employeeMonthlyGoalsFractionId) {
  state.employeeMonthlyGoalsFractionId = employeeMonthlyGoalsFractionId
} else {
  console.log("employeeMonthlyGoalsFractionId 参数未找到");
}


//     绩效详情表格
const stateJX = reactive({
  jxVisible: false,
  current: {},
  jxDataSource: []
})
const jxColumns = [
  {
    title: '项目阶段',
    dataIndex: 'milepostName',
    ellipsis: true,
    width: 130
  },

  {
    title: '任务名称',
    dataIndex: 'taskName',
    ellipsis: true,
    width: 300
  },
  {
    title: '任务负责人',
    dataIndex: 'taskOwner',
    ellipsis: true,
    width: 120
  },
  {
    title: '任务执行人',
    dataIndex: 'taskParticipants',
    ellipsis: true,
    width: 320
  },
  {
    title: '任务完成情况',
    dataIndex: 'taskStatus',
    ellipsis: true,
    width: 130
  },
  {
    title: '倒计时及加减分',
    dataIndex: 'countDown',
    width: 250
  },
  {
    title: '投入工时',
    dataIndex: 'workHours',
    width: 100
  }
]

function showJX(record) {
  get(`/solution-ppm/api/v2/built-in-system-ppm/emgf/${record.id}/template_task_list`).then(data=>{
    if(data.code===200){
      stateJX.jxDataSource = data.data
      stateJX.jxVisible = true
    }else{
      message.error('获取详情失败')
    }
  })

}

const labelToolStyle = {
  maxWidth: '800px'
}
const labelCoulmn = [
  {
    title: '加减分类型',
    width: 120,
    dataIndex: 'pointTypeName'
  },
  {
    title: '加减分数',
    width: 100,
    dataIndex: 'taskPoints'
  },
  {
    title: '加减分触发日期',
    width: 200,
    dataIndex: 'updateTime'
  },
  {
    title: '是否计入总分',
    width: 120,
    dataIndex: 'deductStatus'
  },
  {
    title: '审批日期',
    width: 200,
    dataIndex: 'taskRectificationPointsTime'
  }
]

function getScore(arr) {
  let sum = 0
  if (arr) {
    arr.forEach(item => {
      if (item.deductStatus === '是') {
        sum += item.taskPoints || 0 // 如果 taskPoints 为 null 或者 undefined，将其视为 0
      }
    })
  }
  return sum.toFixed(2)
}

function shouldDisplayCountDownWithTooltip(labelList, text) {
  const result = labelList?.filter(label => label.includes(text))
  if (result && result.length > 0) {
    return [true, result[0]]
  } else {
    return false
  }
}

function hasHyphen(str) {
  return str.includes('-')
}

function hasPlus(str) {
  return str.includes('+')
}

function splitStringByColon(inputString) {
  return inputString.split(':')
}

const shouldDisplayCountDown = targetDate => {
  const { days } = calculateTimeDifference(targetDate)
  return days >= 0 && days <= 7
}
</script>
<style lang="less" scoped>
.page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
}
.page_root :deep(.@{ant-prefix}-spin-nested-loading),
.page_root :deep(.@{ant-prefix}-spin-container)
{
  height: 100%;
}
.page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
{
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
}
.page_root :deep(.@{ant-prefix}-table)
{
  flex: auto;
  overflow: auto;
}
.table-moreBtn_down {
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
}

.table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
  background: #ebf1ff;
}

/*  表格树结构样式处理，展开按钮层级增加*/
:deep(.@{ant-prefix}-table-row-expand-icon) {
  z-index: 1;
}
/*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
:deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
  left: 15px !important;
  width: calc(100% - 15px);
}
:deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
  left: 30px !important;
  width: calc(100% - 30px);
}
:deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
  left: 45px !important;
  width: calc(100% - 45px);
}
:deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
  left: 60px !important;
  width: calc(100% - 60px);
}

/* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
:deep(.@{ant-prefix}-transfer-list)
{
  height: 100%;
  width: 50%;
}
.vid_eomyf304iq{
  max-height:750px;
  overflow-y:auto;
  display:block
}
.vid_c0w1y0i74s{
  margin-bottom:8px;
  padding-top:16px;
  padding-right:16px;
  padding-bottom:16px;
  padding-left:16px;
  background-color:#3875FF
}
.vid_i3zyzj5i7t{
  color:rgba(255, 255, 255, 1);
  font-size:16px
}
.vid_2x3lxgl37x{
  display:block;
  box-shadow:0px 0px 0px 0px
}
.vid_1h0lg92rqa{
  font-weight:600;
  color:rgba(38, 38, 38, 1)
}
.vid_vtilhzebnd{
  display:flex;
  flex-direction:column;
  flex-wrap:undefined;
  margin-top:8px;
  margin-bottom:8px
}
.vid_7yyxa8t0rj{
  color:rgba(38, 38, 38, 1)
}
.vid_cq6ibd15tf{
  height:4px
}
.vid_o7r1ns2ofa{
  margin-bottom:0px
}
.vid_v6p7lrtjan{
  font-weight:600;
  color:rgba(56, 117, 255, 1)
}
.vid_cff9g3unm8{
  color:rgba(38, 38, 38, 1)
}
.vid_0d5e3e31bo{
  color:rgba(38, 38, 38, 1);
  background-color:rgba(255, 255, 255, 1)
}
.vid_jb7d51kuoy{
  display:block;
  background-color:#FFFFFF
}
.vid_ldwha1vidm{
  color:rgba(38, 38, 38, 1)
}
.vid_c4b77qck3h{
  height:8px
}
.vid_iclsk2pifu{
  font-weight:600;
  color:rgba(56, 117, 255, 1)
}
.vid_gnk4rfh12o{
  color:rgba(38, 38, 38, 1)
}
.vid_gtrlkynxxf{
  color:rgba(38, 38, 38, 1)
}
.vid_2di4xkrr1s{
  display:flex;
  flex-direction:column;
  flex-wrap:undefined;
  margin-top:8px
}
.vid_v38k4hcb9h{
  color:rgba(38, 38, 38, 1)
}
.vid_v5g6dzb80h{
  height:4px
}
.vid_g5qc99k25s{
  font-weight:600;
  color:rgba(56, 117, 255, 1)
}
.vid_2tv9f8pml3{
  color:rgba(38, 38, 38, 1)
}
.vid_g6a37dys2u{
  color:rgba(38, 38, 38, 1)
}
.vid_yofra0b5wv{
  display:flex;
  flex-direction:column;
  flex-wrap:undefined;
  margin-top:8px
}
.vid_e7bqxx8qpk{
  color:rgba(38, 38, 38, 1)
}
.vid_gouve646wg{
  max-height:750px;
  overflow-y:auto;
  display:block
}
.vid_jvbxl2gau7{
  display:block
}
.vid_x4frjkqgzq{
  font-weight:500;
  color:rgba(38, 38, 38, 1)
}
.vid_xzxaetxy25{
  margin-top:8px;
  margin-bottom:0px;
  box-shadow:0px 0px 0px 0px
}
.vid_8uqh1smcg2{
  font-weight:600;
  color:rgba(56, 117, 255, 1)
}
.vid_oe6x9nko0b{
  color:rgba(38, 38, 38, 1)
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-thead) > tr {
  height: 40px;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #3875FF;
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 600;
  color: #FFFFFF;
  border-bottom:1px solid #D9D9D9;
  padding: 8px 16px;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
  border-bottom:1px solid #D9D9D9;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
  border-right:1px solid #D9D9D9;
}
/* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
  border-left: none;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
  border-left:1px solid #D9D9D9;
}
/* 开启粘性表头后，表格结构会发生变化 需另外处理 */
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
  border-top:1px solid #D9D9D9;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
  border-top:1px solid #D9D9D9;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
  background: #D9D9D9;
  width: 1px;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-cell-scrollbar) {
  box-shadow: none;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-tbody) tr {
  height: 40px;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 400;
  color: #262626;
  border-bottom:1px solid #D9D9D9;
  padding: 0 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 0 16px;
  }
}

.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
  padding: 0 16px;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
  padding: 0;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
  padding: 0 30px 0 0;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
  padding: 0;
}
.vid_ba39vq33n9 :deep(.table-striped-odd) td {
  background-color: #FFFFFF;
}
.vid_ba39vq33n9 :deep(.table-striped-even) td {
  background-color: #F8FAFC;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
  border-right:1px solid #D9D9D9;
}
.vid_ba39vq33n9 :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
  border-left:1px solid #D9D9D9;
}
.vid_ba39vq33n9{
  width:100%
}
.vid_gu03ej4an4 :deep(a) {
  color: undefined;
}
:deep(.vid_gu03ej4an4.@{ant-prefix}-breadcrumb) > span:last-child a {
  color: undefined;
  opacity: 0.75;
}
.vid_xmrvfi343d{
  width:100%;
  height:100%;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  flex-wrap:undefined;
  flex-grow:1;
  margin-top:8px;
  padding-top:16px;
  padding-right:24px;
  padding-bottom:16px;
  padding-left:24px;
  background-color:#FFFFFF
}
.vid_b3x5mkw968{
  width:100%;
  display:flex;
  flex-direction:row;
  align-items:center;
  flex-wrap:undefined
}
.vid_9i43js7ui7{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:undefined
}
.vid_d28zamkd07{
  background-color:rgba(56, 117, 255, 1)
}
.vid_y3qq75sscb{
  margin-bottom:8px;
  padding-left:8px;
  font-weight:600;
  font-size:16px;
  line-height:16px;
  border-left-style:solid;
  border-left-width:4px;
  border-left-color:#3875FF
}
.vid_xr78qqyjxy{
  width:100%;
  display:flex;
  flex-direction:row;
  flex-wrap:undefined;
  margin-top:16px
}
.vid_emmzagc9y1{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_tr943o4n9q{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_st8vmpp987{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_hogez2jlnt{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_j3ml6r9mti{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_70maqxepqz{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_xdi69ruiqs{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_drvc3mspfl{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_ewsrsr1qot{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_9otwy4zewz{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_6mlgqj432n{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_seen5ewn9z{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:rgba(240, 242, 245, 1)
}
.vid_c8eek4cuen{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_ycd2q5w71a{
  height:48px;
  display:flex;
  align-items:center;
  flex-wrap:undefined;
  padding-left:16px;
  background-color:#F0F2F5;
  box-shadow:0px 0px 0px 0px
}
.vid_p3ax7uv9kv{
  font-weight:600;
  color:rgba(56, 117, 255, 1);
  font-size:18px
}
.vid_9l4z2qaa22{
  display:flex;
  flex-direction:column;
  flex-wrap:undefined
}
.vid_las3v34fw3{
  margin-top:16px
}
.vid_mgn4g8g5qf{
  display:flex;
  align-items:center;
  flex-wrap:undefined
}
.vid_eydfd5rcoi{
  margin-bottom:8px;
  padding-left:8px;
  font-weight:600;
  font-size:16px;
  line-height:16px;
  border-left-style:solid;
  border-left-width:4px;
  border-left-color:#3875FF
}
.vid_sd6x8z93cs{
  color:rgba(255, 123, 0, 1);
  box-shadow:0px 0px 0px 0px
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-thead) > tr {
  height: 40px;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #3875FF;
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 600;
  color: #FFFFFF;
  border-bottom:1px solid #D9D9D9;
  padding: 8px 16px;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
  border-bottom:1px solid #D9D9D9;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
  border-right:1px solid #D9D9D9;
}
/* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
  border-left: none;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
  border-left:1px solid #D9D9D9;
}
/* 开启粘性表头后，表格结构会发生变化 需另外处理 */
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
  border-top:1px solid #D9D9D9;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
  border-top:1px solid #D9D9D9;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
  background: #D9D9D9;
  width: 1px;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-cell-scrollbar) {
  box-shadow: none;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-tbody) tr {
  height: 40px;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 400;
  color: #262626;
  border-bottom:1px solid #D9D9D9;
  padding: 0 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 0 16px;
  }
}

.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
  padding: 0 16px;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
  padding: 0;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
  padding: 0 30px 0 0;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
  padding: 0;
}
.vid_oz6mjcov0p :deep(.table-striped-odd) td {
  background-color: ;
}
.vid_oz6mjcov0p :deep(.table-striped-even) td {
  background-color: #F8FAFC;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
  border-right:1px solid #D9D9D9;
}
.vid_oz6mjcov0p :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
  border-left:1px solid #D9D9D9;
}
.vid_oz6mjcov0p{
  width:100%;
  margin-top:12px
}
.vid_oll1hypc0q{
  margin-top:16px;
  box-shadow:0px 0px 0px 0px
}
.vid_zbifkhjcw9{
  display:flex;
  align-items:center;
  flex-wrap:undefined
}
.vid_9b6rhaypbr{
  margin-bottom:8px;
  padding-left:8px;
  font-weight:600;
  font-size:16px;
  line-height:16px;
  border-left-style:solid;
  border-left-width:4px;
  border-left-color:#3875FF
}
.vid_9ccyl4kryf{
  color:rgba(255, 123, 0, 1);
  box-shadow:0px 0px 0px 0px
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-thead) > tr {
  height: 40px;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #3875FF;
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 600;
  color: #FFFFFF;
  border-bottom:1px solid #D9D9D9;
  padding: 8px 16px;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
  border-bottom:1px solid #D9D9D9;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
  border-right:1px solid #D9D9D9;
}
/* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
  border-left: none;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
  border-left:1px solid #D9D9D9;
}
/* 开启粘性表头后，表格结构会发生变化 需另外处理 */
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
  border-top:1px solid #D9D9D9;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
  border-top:1px solid #D9D9D9;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
  background: #D9D9D9;
  width: 1px;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-cell-scrollbar) {
  box-shadow: none;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-tbody) tr {
  height: 40px;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 400;
  color: #262626;
  border-bottom:1px solid #D9D9D9;
  padding: 0 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 0 16px;
  }
}

.vid_5r571w6dkh :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
  padding: 0 16px;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
  padding: 0;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
  padding: 0 30px 0 0;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
  padding: 0;
}
.vid_5r571w6dkh :deep(.table-striped-odd) td {
  background-color: ;
}
.vid_5r571w6dkh :deep(.table-striped-even) td {
  background-color: #F8FAFC;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
  border-right:1px solid #D9D9D9;
}
.vid_5r571w6dkh :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
  border-left:1px solid #D9D9D9;
}
.vid_5r571w6dkh{
  width:100%;
  margin-top:12px
}
.vid_4dg9v453pk{
  margin-top:16px;
  box-shadow:0px 0px 0px 0px
}
.vid_f6n068s7iw{
  display:flex;
  align-items:center;
  flex-wrap:undefined
}
.vid_8xt5mc34nl{
  margin-bottom:8px;
  padding-left:8px;
  font-weight:600;
  font-size:16px;
  line-height:16px;
  border-left-style:solid;
  border-left-width:4px;
  border-left-color:#3875FF
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-thead) > tr {
  height: 40px;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #3875FF;
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 600;
  color: #FFFFFF;
  border-bottom:1px solid #D9D9D9;
  padding: 8px 16px;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
  border-bottom:1px solid #D9D9D9;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
  border-right:1px solid #D9D9D9;
}
/* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
  border-left: none;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
  border-left:1px solid #D9D9D9;
}
/* 开启粘性表头后，表格结构会发生变化 需另外处理 */
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
  border-top:1px solid #D9D9D9;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
  border-top:1px solid #D9D9D9;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
  background: #D9D9D9;
  width: 1px;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-cell-scrollbar) {
  box-shadow: none;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-tbody) tr {
  height: 40px;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, "microsoft yahei";;
  font-weight: 400;
  color: #262626;
  border-bottom:1px solid #D9D9D9;
  padding: 0 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 0 16px;
  }
}

.vid_j2ezknemwx :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
  padding: 0 16px;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
  padding: 0;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
  padding: 0 30px 0 0;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
  padding: 0;
}
.vid_j2ezknemwx :deep(.table-striped-odd) td {
  background-color: ;
}
.vid_j2ezknemwx :deep(.table-striped-even) td {
  background-color: #F8FAFC;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
  border-right:1px solid #D9D9D9;
}
.vid_j2ezknemwx :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
  border-left:1px solid #D9D9D9;
}
.vid_j2ezknemwx{
  width:100%;
  margin-top:12px
}

/*
新弹窗样式
*/
.jx-table :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, 'microsoft yahei';
  font-weight: 400;
  color: #262626;
  border-bottom: 1px solid #d9d9d9;
  padding: 8px 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 8px 16px;
  }
}
.jx-table :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #3875ff;
  font-size: 14px;
  font-family: arial, helvetica, 'microsoft yahei';
  font-weight: 600;
  color: #ffffff;
  border-bottom: 1px solid #3875ff;
  padding: 8px 16px;
}
.count-down-content {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  padding: 0 5px;
}

.count-down-content > div {
  box-sizing: border-box;
  height: 14px;
  text-align: center;
  line-height: 14px;
  font-size: 12px;
}
/* 倒计时 */
.count-down {
  border-radius: 1px;
  background: rgba(255, 123, 0, 0.1);
  color: #ff7b00;
  height: 14px;
  min-width: 52%;
  margin-right: 3px;
  margin-bottom: 3px;
}

/* 全组 */
.weight-num {
  font-weight: 600;
}

.all-group-yes {
  border-radius: 1px;
  background: rgba(48, 191, 120, 0.1);
  color: #30bf78;
  height: 14px;
  width: 52%;
  line-height: 14px;
  margin-right: 3px;
  margin-bottom: 3px;
}

/* 项目经理 */
.pm-score-yes {
  border-radius: 1px;
  background: rgba(48, 191, 120, 0.1);
  color: #30bf78;
  height: 14px;
  line-height: 14px;
  margin-right: 3px;
  width: 45%;
  margin-bottom: 3px;
}

/* 负责人 */
.ower-score-yes {
  border-radius: 1px;
  background: rgba(48, 191, 120, 0.1);
  color: #30bf78;
  height: 14px;
  line-height: 14px;
  width: 50%;
  margin-right: 3px;
}

.all-group-no {
  border-radius: 1px;
  background: rgba(245, 34, 45, 0.1);
  color: #f5222d;
  height: 14px;
  width: 44%;
  line-height: 14px;
  margin-bottom: 3px;
  margin-right: 3px;
}

/* 项目经理 */
.pm-score-no {
  border-radius: 1px;
  background: rgba(245, 34, 45, 0.1);
  color: #f5222d;
  height: 14px;
  line-height: 14px;
  margin-right: 3px;
  width: 45%;
}

/* 负责人 */
.ower-score-no {
  border-radius: 1px;
  background: rgba(245, 34, 45, 0.1);
  color: #f5222d;
  height: 14px;
  line-height: 14px;
  width: 50%;
  margin-right: 3px;
}

.count-down-hover {
  color: #262626;
}

.count-down-hover > p {
  margin: 0;
}
.extension-color {
  border-radius: 1px;
  background: rgba(89, 89, 89, 0.1);
  color: #595959;
  height: 14px;
  min-width: 51%;
  margin-right: 3px;
  margin-bottom: 3px;
}
.score-table :deep(.@{ant-prefix}-table-thead) > tr > th {
  background: #f8fafc;
  font-size: 14px;
  font-family: arial, helvetica, 'microsoft yahei';
  font-weight: 600;
  color: #595959;
  padding: 8px 16px;
  border: none;
}

.score-table :deep(.@{ant-prefix}-table-tbody) tr > td {
  font-size: 14px;
  font-family: arial, helvetica, 'microsoft yahei';
  font-weight: 400;
  color: #262626;
  border-bottom: 1px solid #d9d9d9;
  padding: 8px 16px;
  word-break: break-all;
  .cell-wrapper {
    padding: 8px 16px;
  }
}
.score-title {
  margin: 2px 2px 12px 2px;
  font-family: PingFangSC-Medium;
  font-size: 16px;
  color: #262626;
  letter-spacing: 0;
  font-weight: 500;
}
</style>
